@ devhammer - the new thing at GHI is focus and quality. Having multiple firmware versions defeats what we are trying to do. We want one kick ass firmware that works perfectly and flawlessly
Put USB host in a separate dll ā and so much for the problemā¦
@ Simon from Vilnius - there is no dll. This is the core driver. I am sure wet can do some crazy pointers and make it work together but the code wonāt be clean and it will take a while to complete. The last thing we want to do is release a buggy firmware.
This can be revisited in the future but fir the next sdk, the community will decide what will be included.
Are you doing something like reserving the USB buffers whether or not itās being used?
No, really, has anyone has to show anything cool with USB host? If I look in Codeshare, RLP beats USB host badly.
Remove RLP, and you are in a very difficult position against Arduino and mbed. Unless, of course, you donāt care.
Thatās not an argument ā if all is hopeless, then why are you here?
Thatās not an argument ā if all is hopeless, then why are you here?
Because when āfastā wins out over āgoodā and ācheapā, then NETMF makes sense.
I still donāt get it why itās an issue though ā .NET has always been very modular, no? Iāve dumped CAN from G400 altogether and done it my way ā for both channels, using direct interrupts (even skipping RLP InstallInterrupt extension), beating GHI implementation in every aspect. RLP gives me all that. And suddenly we cannot use a dll for a feature nobody ever used since the introduction of Cerberus, the product itself?..
if not GHIās employee, Iāll vote for RLP
If need File System, we have SD. Not too much project that use HID devices or something that needs USB host.
If GHIās employee, yours choice is my choice
@ Simon from Vilnius - I donāt think going by the number of examples is meaningful, because all previous and current firmware versions did not support USB. Also, the hardware is already on the Cerbuino and canāt be used with the current Ghi firmware. I donāt think weāve even scratched the surface of the potential for using USB host. Just look at how often itās used on platforms like the raspberry pi.
Just my 2 cents.
@ Valkyrie-MT - also, if you want Freaking easy, USB fits in, whereas RLP is definitely a more advanced feature that gets away from .net mf and āeasyā. Although I do understand the utility of it. My take is that if you know C well enough and are advanced enough to use RLP, you can probably just build your own firmware too. A user that wants āeasyā will find USB host to be useful and easy to use, whereas RLP is not so easy for a beginner looking to minimize the number of languages they learn.
@ Simon from Vilnius - I donāt think going by the number of examples is meaningful, because all previous and current firmware versions did not support USB. Also, the hardware is already on the Cerbuino and canāt be used with the current Ghi firmware. I donāt think weāve even scratched the surface of the potential for using USB host. Just look at how often itās used on platforms like the raspberry pi.
Just my 2 cents.
And what could one connect to Cerberus, given itās limited memory and processing capabilities? Can you connect a webcam? A spectrometer? A 4G modem? The only USB devices I can think of are mice, keyboards and flash sticks. Mice and keyboard on a device that canāt easily drive a LCD? Riiiightā¦ So weāve got USB flash sticks left. If they work as reliably as SD card, then itās better not to connect anything (thatās my experience and I can prove it).
@ Simon from Vilnius - usb mass storage and hid only, maybe serial.
@ Valkyrie-MT - also, if you want Freaking easy, USB fits in, whereas RLP is definitely a more advanced feature that gets away from .net mf and āeasyā. Although I do understand the utility of it. My take is that if you know C well enough and are advanced enough to use RLP, you can probably just build your own firmware too. A user that wants āeasyā will find USB host to be useful and easy to use, whereas RLP is not so easy for a beginner looking to minimize the number of languages they learn.
Since when USB is an easy experience?
Iām pretty sure USB can be implemented using RLP (can you do it vice versa?), and C on RLP is more about crunching MCU manual, not the language itself. And I have yet to see an MCU enthusiast that doesnāt know C, but does know C#ā¦
And Iām still waiting for any useful USB host feature. I gave mine on RLP (ok ok, on G400, but I see no reasons it could not be applied to Cerberus), so where are yours?..
Completely agree with Simon. There seems to be some myth that RLP is difficult. Itās actually very FEZy.
@ Simon from Vilnius - there is only 10kb reserved for rlp so it itās still limited in that sense, meaning you canāt implement usb in only 10kb.
I am not directing anyone one way our another but just adding info.
@ Simon from Vilnius - there is only 10kb reserved for rlp so it itās still limited in that sense, meaning you canāt implement usb in only 10kb.
I am not directing anyone one way our another but just adding info.
Iāve done some low-level USB communication, so Iām not quite convinced USB requires more than 10kB. 10kB is quite a lot, especially for such low bandwidth devices as mice. I might be wrong here, though. Please give details, then.
Since when USB is an easy experience?
Itās easier from the end-user experience and itās certainly easier to code USB support with some level of support baked in.
Iām pretty sure USB can be implemented using RLP (can you do it vice versa?), and C on RLP is more about crunching MCU manual, not the language itself.
You can implement anything in C. In fact, if you want to code in C, you can write a much more memory efficient and performant application if you ditched .NET MF altogether. The purpose of .NET MF, as we all know is not to be faster or more memory efficient than C, because it will fail every time. The point is to bring the convenience of managed code to the embedded device world. To me, bringing more capability to managed code is desirable.
And I have yet to see an MCU enthusiast that doesnāt know C, but does know C#ā¦
Here I am! I only work in C# with the occasional Java and JavaScript. No C. If I knew C well, I probably would have used another embedded platform. This platform attracted me explicitly because I could do so much with C#.
And Iām still waiting for any useful USB host feature. I gave mine on RLP (ok ok, on G400, but I see no reasons it could not be applied to Cerberus), so where are yours?..
keyboards, mice, serial, and USB sticks would be fantastic. I could do in field updates with a memory stick. If it had worked with the Cerb when I started my project, I likely would have used USB stick as a backup method for setting SSID and password for wifi. Requiring an end user to have a usb stick is much more acceptable than requiring a microsd card.
Having said all that. I donāt care what GHI chooses. I think RLP is great. I have just not needed it for anything.
-Valkyrie-MT
You can implement anything in C. In fact, if you want to code in C, you can write a much more memory efficient and performant application if you ditched .NET MF altogether. The purpose of .NET MF, as we all know is not to be faster or more memory efficient than C, because it will fail every time. The point is to bring the convenience of managed code to the embedded device world. To me, bringing more capability to managed code is desirable.
Removing RLP is actually a [em]removal [/em]of capabilieties. Another real world example: Iāve not only replaced CAN in my application, I also use RLP to do some AES encryption. I would be impossible to do it on managed side. RLP also gives possibility to reach other features in a very feature rich F405. Without RLP, we only rely on what GHI guys do, and they canāt do everything, and sometimes they donāt make it right. Same applies to Microsoft, but they are totally hopeless in that sense. In those cases I can fix things myself, still not sacrificing productivity much. Iāve done that on EMX, Iāve done that on G120, Iāve done that on G400 and now I can do that on Cerberus!..
Here I am! I only work in C# with the occasional Java and JavaScript. No C. If I knew C well, I probably would have used another embedded platform. This platform attracted me explicitly because I could do so much with C#.
Alright, you are the first. Still I donāt see any reasons why you couldnāt succeed in RLP. Nobody uses RLP to rewrite everything; itās used to fix or implement a very distinct functions that GHI has no time or motivation to play with.
keyboards, mice, serial, and USB sticks would be fantastic. I could do in field updates with a memory stick. If it had worked with the Cerb when I started my project, I likely would have used USB stick as a backup method for setting SSID and password for wifi. Requiring an end user to have a usb stick is much more acceptable than requiring a microsd card.
USB sticks are fine, but at least they have an alternative (SD card), although not very reliable (but hey, who said USB flash stick will be reliable). Any other possible [em]not hypothetic[/em] applications?
The thing that shocks me most is the whole idea of voting. You give this important decision toā¦ a bunch of users on the forum. At the moment itās 12:6. Is this your statistical sample?.. Does it reflect your userbase accurately? Are they experienced enough to vote on such specific issue? Do they have experience in RLP, or USB, or both? What about those guys who misses the vote?
And what about your newest mantra āfocus and qualityā? Cerberus was made a first-class passenger only four weeks ago, and now you will simply strip a very important part and replace it with another? When will you stop stripping things like that? Any guaratees that four weeks later from now you will not strip USB host in favor for support of this thingie? Autoblow 2: A Robotic Oral Sex Simulator For Men | Indiegogo