Replies: 6 comments
-
Getting back into things after some vacation time over Memorial Day, but in reviewing this post and the related repositories and links, this looks like a great project! Prior to this point, probably the best visual-programming alternative to the original LEGO MindStorms Robotics Invention System software has been the VisualNQC project (formerly fUNSoftWare), but it has had a few limitations, including the following:
I did see the note on one of the project pages about support for RCX 1.0 vs 2.0. As the last RCX firmware release (0332 that came with the LEGO Education Robotics set) works on RCX 1.0 bricks, and as that version 0332 firmware is available, my personal approach these days has been to just target the latest, as I haven't yet found anything that would seem to make it worth the time to add the flexibility needed to support older firmware versions. If you'd like, I would be more than happy to do whatever is needed to add you to the BrickBot organization and facilitate transferring the pertinent repositories to this BrickBot organization. Then, the pin for the VisualNQC repository could be replaced with a pin for the WebPBrick repository. Always looking for folks who might be interested in being a part of the BrickBot org. Additonally, if support for WebNQC does not involve any breaking changes to NQC, it would be great to also pull the WebNQC support into the upstream BrickBot\NQC repository. There are still a few more old RCX projects I've collected that need to be added to this BrickBot organization, but this WebPBrick project looks very exciting! I saw some USB tower code among the WebPBrick codebase. Not sure what the status of that might be, but I've been working on a way to potentially mitigate the issue of not having a USB tower driver when running 64-bit versions of Windows. (If it all comes together, the USB tower would be accessed from within 64-bit Windows as a serial port.) Thanks for posting! |
Beta Was this translation helpful? Give feedback.
-
Might there be any known issues with targeting WebAssembly that would potentially preclude the ability to also build for Linux, Windows, and MacOS in addition to WebAssembly? The existing NQC project utilized the Makefile and #defines to support the targeting of multiple platforms, so perhaps it might be possible to add WebAssembly as an additional supported platform target? I know Makefile work remains outstanding at the moment, but I have taken a first pass at updating and reorganizing nqc.cpp to support conditional compilation for WebAssembly. Also, incase you haven't already seen it, there is a separate nqc-libs repository that includes NQC example programs, libraries, and tutorials. They started out as separate projects, which is why they are in their own repositories, but perhaps it might make sense to roll the NQC-libs content into the NQC repository at some point? |
Beta Was this translation helpful? Give feedback.
-
@maehw : Support for WebAssembly similar to that offered by WebNQC is now available in the main NQC repository. Both the Makefile and nqc.cpp were modified so that the existing platform targets could also continue to be supported, and a single " Kudos to you for the great work in getting WebAssembly support going! |
Beta Was this translation helpful? Give feedback.
-
Hi @mesheets , thank you for your messages! I am happy to see the WebPBrick resonate. I am trying to reply to every bit!
Are there some screenshots somewhere for VisualNQC? Could be a great way to grasp how it looked like and how it worked - and try to add some context from my side.
I agree for normal use, WebPBrick should default to firmware 0332 aka 3.32. However, I'd like to provide a generic firmware download mechanism for folks that want to play more with it - including
But yeah, I thought of this as a separate firmware download website (another URL/subfolder of WebPBrick)... - so that the WebPBrick IDE could check for the expected original LEGO 3.32 firmware and provide a link to the firmware download page with that version being pre-selected.
I am open to transferring the WebPBrick repository, as long as I can still maintain it - gladly together with you. I don't see the need for replacing VisualNQC unless you really want to.
Unfortunately, WebPBrick does not support the USB IR tower yet. I've worked on this - but I've faced problems there (using WebUSB). Help would be very much welcome. I have in mind of sniffing USB traffic with a Windows machine that runs BricxCC together with the LEGO USB IR tower.. to have some data that can than be compared with what happens (and doesn't work) with the USB traffic from my webbrowser.
Great that you have update the NQC repository itself - where I forked WebNQC from! Sorry, I haven't taken a closer look at your changes. My goal was not only to build for WebAssembly but also to reduce the functionality NQC would provide for other targets and infrared communiation - as the latter is done using the WebSerial API. I want to have a minimalistic binary file - with compact size - to save bandwidth/ loading time/ money when running this on some public website such as webpbrick.com. Thanks for pointing me to nqc-libs. Would be great to see someone add support for an interactive tutorial ... or a cheatsheet for NQC into WebPBrick. Would also love to see some kind of project management as in "this is my RCX-based robot, here are the build instructions with images that allow you to rebuild it.. and here is the NQC code that runs in its yellow programmable brick to control it". But that seems a lot of effort to me and I won't have the time to do this on my own. It doesn't event seem that there's a large user base for the RCX anymore these days.
That sounds great! I think about making WebNQC obsolete then. Would be great if we could set up GitHub Actions to build the [Web]NQC WebAssembly version automatically and use that as artifact inside of WebPBrick. I guess we both have limited time to work on this in our free times. Any suggestion what could be the next (baby) step? |
Beta Was this translation helpful? Give feedback.
-
Glad to be able to connect, and I will likewise try to reply to all!
There are a few screenshots under the original fUNSoftWare (for University of New South Wales) SourceForge site. I tweaked the UI a little to increase the space available for iconic programming, but the basic look, feel, and block connection layouts are the same. If you see anything that you'd like a more specific and/or better screenshot of, just let me know. There was also a commercial product called RCX PicoBlocks, by Playful Invention that is was described as only working with Windows XP. It used more of a Blocky-style layout, and there is a basic screenshot here, plus a PDF manual that includes a few additional screenshots. Interestingly, melodies could be entered using a piano-style keyboard (p. 11).
Ah, gotcha!
Wow, I think that's the first I've seen of that. I appreciate your tracking that down and sharing a link!
Absolutely—wouldn't want to take that away from you. :-) I would still keep the VisualNQC repository around, but as a target for work in the limited free time that is available, there seems to be a lot to like with WebPBrick. As such, I think it would make a great "first recommendation" for someone looking for a visual/iconic RCX programming tool that is able to run on more modern systems.
A few days ago, while trying to work through a few USB IR tower details myself, I came across the Infrared Brick Tower (IBT) project, which looks to make the USB IR tower function on modern computers. The current driver requires re-implementation on the part of projects that might use that re-implemented driver, so I inquired about the possibility of exposing the USB IR tower via a virtual serial port (similar to how the com0com project could create virtual serial ports). I opened an issue/suggestion hangrydave/InfraredBrickTower#35 if you'd like to take a look. I posted what I know, but if you notice any errors, feel free to call them out—might help me in trying to get something working. :-)
Slightly off topic here, but if you are paying for public hosting, I think it might be possible for this to be hosted with GitHub Pages, as I don't think I've seen anything in WebPBrick that would require dynamically-generated web pages on the server side. I've worked with a couple other projects that used GitHub pages, and while there are certainly some differences between this project and those, I think it might be doable, even potentially to the point of using the domain name if you wanted. No worries if you'd prefer to keep the current hosting arrangement for now, but I thought I would mention this if you might be interested. :-)
I have a GitHub action in the NQC repo that is building both for native and WebAssembly. The next step would be to grab the generated binaries and make them available somewhere.
Yes, same on this end. :-) If you'd like, I can look into what it might take to get WebPBrick hosted by GitHub pages. You also should be receiving an invitation to the BrickBot organization. You would be the first to join this GitHub org and potentially contribute, so please don't hesitate to let me know if something doesn't seem setup quite right. |
Beta Was this translation helpful? Give feedback.
-
The NQC CI action now posts build outputs as artifacts, including both the WebAssembly output from Emscripten and the native Ubuntu/Linux binary.
I haven't seen anything yet that would potentially rule out using GitHub Pages, but some minor restructuring would likely make this easier. With Git, though, restructuring isn't always minor, so I did want to mention this beforehand. Basically, anything that would be part of the WebPBrick site itself would be under a common folder, and content not part of the site (e.g. .github, .gitignore) would remain outside that folder. Also, as brickOS was also referenced earlier, I will mention that the BrickBot/brickOS-bibo project includes a number of patches that were posted and/or circulating as well as adding support for additional programming languages (e.g. Esterel). There is more work there that I have on my to-do list yet, but WebPBrick has distracted me. ;-) |
Beta Was this translation helpful? Give feedback.
-
Hi all,
I'd be happy if you could add https://github.com/maehw/WebPBrick/ to the list.
I'd be happy to see more people play and interact with it.. and maybe develop it further. I can also think of adding more support for old features.
Beta Was this translation helpful? Give feedback.
All reactions