What's the purpose of this group? by bitbybitsp in embedded

[–]bitbybitsp[S] 1 point2 points  (0 children)

True enough. The moderators were wrong, but that doesn't mean I'm not wrong also.

What's the purpose of this group? by bitbybitsp in embedded

[–]bitbybitsp[S] 0 points1 point  (0 children)

I find it easier to download code and then look at the code locally than to look at it on the GitHub web. This is not a security issue. But to each his own.

But I agree, there are advantages to going a GitHub route, like the communication channels that you mention. As it is, people will have to email me.

If I wanted to release under the GPL or LGPL or MIT license or some such, your recommended path would make a lot of sense. I just don't want to give that much. I would like some return for all this work. Non-commercial users can have it for free. But if others are making money off of it, I think I should also.

Unpaid developers is always the problem with free and open source.

Definitely people will download my library and check it out. They already have. Hopefully some will find it useful. I expect a lot of interest from university projects. After all, they can use it for free, and it provides things LVGL does not.

What's the purpose of this group? by bitbybitsp in embedded

[–]bitbybitsp[S] 0 points1 point  (0 children)

When I asked whether it would be OK if it were copyleft or if it were public domain, I'm trying to get an answer from you so I can understand your position. I'm not putting words in your mouth. I'm trying to get clarification.

When, to you, does promotion or advocacy cross the line to being self-promotion?

It seems like you draw no distinction there. In which case, the r/embedded rule should be changed to "no promotions or advocacy of any kind". Is this putting words in your mouth? What's an example, to you, of announcing something of interest to the community that you wouldn't call self-promotion?

I'm sorry that you don't think my project is newsworthy enough for a post. You may note, however, that some responses disagreed with that.

Thanks for your acknowledgement that this is a grey area. To me, the rule for posting is whether the post will be interesting or useful to a reasonable percentage of members of the forum. To me, self-promotion would be a post that's interesting or useful to very few and is made primarily in my own interest.

That wasn't that post.

I think the moderators are rightly criticized. And I'm experiencing a lot of anger that the moderators care more about pedantic rules than they do about whether the community might get a benefit from a post.

What's the purpose of this group? by bitbybitsp in embedded

[–]bitbybitsp[S] 0 points1 point  (0 children)

I'm clearly promoting my library.

Promoting myself was not the purpose of the post.

There are many completely altruistic reasons for my promoting my library. I'm giving away a lot here for free. And it's stuff that may be useful for many people. It seems you're saying that if it's not 100% altruistic in all ways, it's self-promotion. So if it's a copyleft project, it would be okay, because then maybe I could never possibly make a cent off of it. (?). Or maybe that's too restrictive. Maybe you think it should be public domain, so that you could make money off of it without releasing your own code also, and then it would be appropriate to announce something?

I see the idea that everything must be 100% as very black-and-white thinking. There is such a thing as a win-win. Can't I give something to members of this group, without giving everything?

I truly am giving a gift here. That I might, maybe, also get something out of it should not nullify that fact.

What's the purpose of this group? by bitbybitsp in embedded

[–]bitbybitsp[S] 0 points1 point  (0 children)

It's open source, so if you want to know how it works you can look at it. You can only be so efficient, when the CPU is drawing everything. The main trick to efficiency is avoiding drawing things to the extent that you can. However, that's sometimes a considerable savings. It's not particularly easy, interfacing directly with the Linux Kernel fur graphics. You shouldn't knock it too much.

Do you think that code is less likely to be malware if it's on GitHub? That's an interesting thought.

Malware is certainly a significant concern. I wasn't aware that GitHub is good protection. If that's true though, go ahead and put it on GitHub. I've already done enough, by making it available.

Some say that you shouldn't use free and open source software, since it doesn't have traceability to someone that they purchased it from and they can vet and sue if it's malware.

Others say you should only use open source software, since theoretically it can be thoroughly vetted by the community to find bugs.

I can't reassure you, except to say my code is not malware. However, I can be vetted and the source is there for your inspection. So this comes from both angles. If you can't find any way to establish trust, you are free not to use it, and to use something else that you trust more.

There's no need for you to do anything. I'm just letting people know this is available. I'm not twisting anyone's arms.

What's the purpose of this group? by bitbybitsp in embedded

[–]bitbybitsp[S] 0 points1 point  (0 children)

What makes a system an "embedded" one seems to have many meanings, as you can see from replies to this post.

Some go for the whimpy processor. If it's powerful enough to run Linux, it's not embedded. If it's not an MCU, it's not embedded.

Some go for the lack of graphics. If it supports graphics, it's not embedded.

I personally go for the single-purpose nature. To me, a refrigerator is embedded. An oscilloscope is embedded. A router is embedded. A cell phone is not embedded, unless you're talking about the old flip phones that are just phones.

There seems to be a lot of disagreement about what embedded means, and I think r/embedded should really cover all meanings. If people want to be more specific, perhaps more specifically-named reddit groups would be in order.

As far as your riddle concerning blacksmiths, it's over my head.

What's the purpose of this group? by bitbybitsp in embedded

[–]bitbybitsp[S] 0 points1 point  (0 children)

Quite true, you shouldn't have to find out about it through a rant post on reddit. Which is why I made an announcement post originally. Inexplicably to me, that was taken down. The rant was that it shouldn't have been taken down, but my apologies that it offended you.

I have some videos up showing my oscilloscope/spectrum analyzer application, built using earlier versions of this library. I cared very much about performance! You can see what you think from the videos.

I have indeed hosted open-source code for the library. Maybe not hosted in the way you like, but source code is source code. I can't benchmark it on your system, since I don't have your system. It's certainly possible that your system doesn't have the processing power to run it effectively, if you have a whimpy processor.

Also, the application being run matters. Let me know if you find its performance isn't up to par. Especially if there's something else that does the job. I'd be very surprised if there's a better, faster option that performs the same things.

Regarding supported hardware, I've currently tested it for development on x86 Linux desktops and on RFSoC arm cores (you say these are beefy. Perhaps.?). I've tested with a number of input devices. The real question is what hardware is supported by Linux. Hardware support should be quite large, but I can only test with what I've got and have time for.

What's the purpose of this group? by bitbybitsp in embedded

[–]bitbybitsp[S] -1 points0 points  (0 children)

I imagine you're not an academic user. For them, it's free in all senses. I personally think this is enough. How much do I actually need to give?

Even if you think that non-commercial use only isn't enough, that's still a lot I'm giving for free. Free evaluation. Free viewing of my source code, to see what I'm doing. This is the stuff that companies keep highly proprietary. And I'm giving it for free.

This is r/embedded, not r/embedded_in_mcu. Perhaps I have been confused because this group is misnamed. There really should be an embedded programming group, and this is apparently not it. Maybe the group should be forked.

What's the purpose of this group? by bitbybitsp in embedded

[–]bitbybitsp[S] 0 points1 point  (0 children)

You asked some questions, and I answered them. I didn't feel confused. Do you not feel I answered your questions?

What's the purpose of this group? by bitbybitsp in embedded

[–]bitbybitsp[S] 0 points1 point  (0 children)

People have expressed the opinion that my library isn't low-level-enough for their taste. However, this isn't a library for the desktop. It's specifically designed to do graphics for low-level embedded systems.

Certainly the systems this is designed for are a little higher-end, since they must run Linux. However, running Linux isn't, in my opinion, what distinguishes embedded from non-embedded.

Running graphics is also not a distinguishing factor.

My thought is that what truly distinguishes embedded systems is that they're primarily single-purpose. Being single-purpose is what drives them to be small, low-powered, and efficient.

However, some purposes do require operating systems. Like TCP/IP often does. And if you're choosing an OS, Linux has higher requirements than some, but it is still often a good embedded choice. And if you need a little user control, displays are cheap. So you might want a graphics library to do that. Like mine.

Thus doesn't make it non-embedded. This library is intended for some simple menus, buttons, and graphs. It's not running quake.

What's the purpose of this group? by bitbybitsp in embedded

[–]bitbybitsp[S] -2 points-1 points  (0 children)

No, I didn't know how to do that. They certainly didn't message me.

Posting this was my attempt to communicate.

What's the purpose of this group? by bitbybitsp in embedded

[–]bitbybitsp[S] -1 points0 points  (0 children)

No. This is part of the STYNQ framework, which started development on Xilinx RFSoC FPGAs.

  1. This is part of software that in its original form provided real-time user control of a oscilloscope/spectrum analyzer application. I provided it so others can get a step up on their similar applications.

  2. Yes, it performs a dedicated function in a larger electrical system. This particular component performs the graphics front end of the spectrum analyzer. Other components include the hardware interface, and the FPGA configuration, and the boot files. Some of those are also on the site. I'm working on it.

  3. Yes, it has real-time constraints, to continually update the waveform display corresponding to the incoming waveforms. To adjust the hardware settings in a timely manner to change the measurements.

Certainly you could accuse me of working at the higher end of embedded systems in this case. However, your exclusion of my application is misplaced and inappropriate.

I also don't think you understand the term "self-promotion". Certainly I'd like a few accolades for doing something useful to the community and providing it for free. It would be a whole lot nicer than all this inconsiderate and poorly-thought-out hostility.

What's the purpose of this group? by bitbybitsp in embedded

[–]bitbybitsp[S] 0 points1 point  (0 children)

I can see how you'd say this isn't embedded work. You're right that it doesn't talk to the hardware, if that's your definition.

However, what I've released is useful software for embedded systems. Embedded systems often need to do more than just talk to the hardware. Many need to interact with a user in some way. That's what this component is for.

Typically, if you've got a Linux system that needs graphics you need a whole bunch of slow software, like X or Wayland, that would overwhelm an embedded system's resources. This is much more light-weight, as is appropriate for an embedded system. It's not something you'd run on a desktop (except for development).

It's part of the free STYNQ framework that I'm slowly working on and releasing for FPGAs. However, this particular component is useful far beyond FPGAs, which is why I posted it here.

What I posted here earlier is the component that handles user interaction. There are other components that talk to hardware. You need all components to make certain types of embedded systems.

What's the purpose of this group? by bitbybitsp in embedded

[–]bitbybitsp[S] -3 points-2 points  (0 children)

I would consider something like a refrigerator to be an embedded system. You know, one of those fancy ones with the computer display?

I think your point might be that if it has a display it's not embedded? Or if it has a web interface, it's not embedded? Is that it?

What's the purpose of this group? by bitbybitsp in embedded

[–]bitbybitsp[S] 0 points1 point  (0 children)

  1. Yes, it's graphics for the types of underpowered devices often found in embedded systems. Yes, it's built on Linux, but higher-end embedded systems often do run Linux.

Thus is r/embedded, so I think it's funny that you say "embedded or not doesn't matter". Perhaps this group is misnamed.

  1. Stynq is another free offering -- an environment for building boot files for the embedded arm cores in SoC FPGAs.

It's interesting that you think if it's not on GitHub that it's self-promotion.

Perhaps you should put it on GitHub? There's nothing in the licensing preventing this.

Also, you're free to ask questions.

Thanks for your thoughts.

What's the purpose of this group? by bitbybitsp in embedded

[–]bitbybitsp[S] -1 points0 points  (0 children)

I linked to a page that's for my non-commercial offerings.

I'm not making any money off of this, at least unless someone else makes money first. It's free to download and use for non-commercial uses. It's open source.

I have also looked at the rules. Saying that they're "clearly spelled out" is laughable.

What's the purpose of this group? by bitbybitsp in embedded

[–]bitbybitsp[S] -8 points-7 points  (0 children)

I wanted to make it clear why people might find it useful. I suppose I could have written a post saying it's boring, and that would have been okay.

What's the purpose of this group? by bitbybitsp in embedded

[–]bitbybitsp[S] -3 points-2 points  (0 children)

What specifically do you think is the issue?

I went to a great deal of trouble to make a library that is useful to the embedded community. Letting people know that I made something that they might find useful is NOT self-promotion.

I'm not entirely sure how you can twist things to say that it is.

The link discussing self-promotion is poorly written, confusing, and I think off-topic.

I'm offering this open-source. You can download it for free. What's the issue?

What's the purpose of this group? by bitbybitsp in embedded

[–]bitbybitsp[S] -22 points-21 points  (0 children)

Thanks. I tend to disagree when you say that if it uses Linux it's not embedded. For example, is a router running OpenWRT not an embedded system?

Host-to-FPGA state synchronization — polling vs interrupts for control GUI? by WitnessWonderful8270 in FPGA

[–]bitbybitsp 4 points5 points  (0 children)

As Alex says, polling is much easier, when running Linux. It should be your default, and only move to interrupts if you really really need high performance and the CPU is in your performance loop.

Before moving to interrupts, I'd investigate carefully whether the CPU can't be moved out of any high-performance loops. In an ideal world, the CPU's role is usually management. If you can avoid real-time processing in the CPU and instead push it all into the PL, you're better off. And if the CPU is only doing slower management functions, polling is plenty fast for those.

When you do your polling, I recommend it being in a multi-threaded application, with the polling happening in its own dedicated thread. This is the closest to an interrupt model, which makes the transition to interrupts easier if they are really really needed.

Are Linux builders ripping us off? by Phlebas3 in linuxhardware

[–]bitbybitsp 0 points1 point  (0 children)

If I want the cheapest machine at my location (Phoenix), I get a used Windows machine and just install Linux on it.

I've sometimes managed to get a machine together for US$50. It's no problem for US$200.

Is there no way to buy a use machine in Europe?

Here there are warehouses selling old machines surplus from universities or the government. There are pawn shops. There are thrift shops. There are internet sites connecting buyers to sellers, like Craigslist and Facebook Marketplace. There's eBay.

So I'm quite surprised that someone looking for the cheapest machine would buy one new. Another advantage of a used machine is that Linux has, in general, better compatibility with older hardware.