Version 33 (modified by atorf, 5 years ago)

Home | Preview | News | In the Press | Projects | Features | Download | Development | Bug Reports | FAQ | Login


Newsflash

  • NXT-USB communication successfully tested (using official LEGO Mindstorms NXT Fantom Driver Version 1.02 on Windows and libusb on Linux).
    Toolbox-Prototype with USB support is being developed, first tests point towards data rates of about 150 analog sensor / motor requests per second (as opposed to a maximum of about 15 per second using Bluetooth). See here for details: USBStuff (29.4.2008)
  • Lowlevel private functions dec2wordbytes and wordbytes2dec rewritten and optimized by about factor 10.
  • New Ultrasonic Sensor mode "snapshot" (aka PING-Mode or SINGLE_SHOT) successfully implemented and tested.
    Observed multiple echos seems complex, might not be as useful as expected.
  • NXT-USB communication (Linux) still to be tested and implemented.
  • New I²C sensors (compass, acceleration, IR, color) are to be tested and implemented.



Further Concepts & To Do List

Here we try to summarize some of the new concepts and bigger To-Do issues for future toolbox releases. These are basically just translations and short explanations of the German developer's notepad developer's notepad.

  • Split GET-Functions into REQUEST and COLLECT parts again, making it possible to do calculations inbetween. I.e. add possibility for non-blocking (asynchronous) functions, as known from many sockets implementations.
  • Add verbosity-level support in textOut.m and of course in all files using it, to enable complete and detailed logging, that is configurable.
  • Check the MATLAB-Help for the command readasync. Can it help to reduce timeouts and lags? Can it be used for the above mentioned non-blocking functions?
  • textOut and dec2hex are slow. String-handling is slow. What can be done? Consider various performance improvements, use the Profiler.
  • Apparently the commands pause and tic / toc have only an accuracy/resolution of 15ms when using Windows or Linux (someone said)? Is that true?Investigate how accurate they are and decided wether it still makes sense to use SendSendPause and SendReceivePause…
  • The (sometimes optionally) passed Bluetooth-Handle (to functions) gets checked/validated far too often inside these functions. Checking/validating is only necessary at the lowest level, the other checks are a waste of performance…
  • Compatibility for multiple bluetooth handles / NXT connections at one time is not perfectly implemented: The settings SendSendPause etc. are unique and global, and should be defined PER connection, not only once. Workaround: Disable those pauses by setting to 0.
  • /!\ Add USB-Support, try to use as many existing BT-functions as possible (by using wrappers if necessary). Some code snippets, hints etc are collected on this temporary page: USBStuff
  • Note: Apparently we CAN access the PID regulation directly, as this post suggests ( http://forums.nxtasy.org/index.php?showtopic=2054&view=findpost&p=16463). Code-Sample:
    def set_PID(motor,P,I,D):
        """Change the PID parameters 
    		>>> set_PID(motor,"\x78","\x78","\x78")    Use only hexadecimal number in string !"""
    		brick.write_io_map(131073,motor.port*32+22,P)
        brick.write_io_map(131073,motor.port*32+23,I)
        brick.write_io_map(131073,motor.port*32+24,D)
        update(motor,Update.PID_VALUES)
    



Checklist for New Releases

This todo-list might have to be updated for future public releases with many developers / contributors collaborating, it was first intended for internal use and then published → Checklist for New Releases.



Further Concepts (German developer's notepad)

This page provides a developer's notepad to discuss further concepts → Further Concepts (German).