|Version 33 (modified by atorf, 5 years ago)|
Home | Preview | News | In the Press | Projects | Features | Download | Development | Bug Reports | FAQ | Login
- 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).