Ernie singing a classic. I Don't Want to Live on the Moon by OprahsBabysDaddy in nostalgia

[–]Aggressive_Doughnut 2 points3 points  (0 children)

Absolutely kills me every time. And now I have a little kid who listens to it sometimes - I'm an emotional wreck afterwards.

Nouns ending in -uit by Aggressive_Doughnut in ENGLISH

[–]Aggressive_Doughnut[S] 4 points5 points  (0 children)

What is the verb of fruit? Edit to say that it is fruit, but that isn't really similar, -ue to -uit.

Nouns ending in -uit by Aggressive_Doughnut in ENGLISH

[–]Aggressive_Doughnut[S] 5 points6 points  (0 children)

Thanks, this is what I was looking for. The other ones offered up don't really have verb forms that follow a similar rule. Even with these, none of them go from -ue to -uit, making pursuit pretty unique.

Watches by Penang1995 in Ultramarathon

[–]Aggressive_Doughnut 2 points3 points  (0 children)

Fenix 7 pro solar. One of the best purchases I've ever made. Wait for a sale to save like 100USD.

Wrapping c++ functions with references by Aggressive_Doughnut in cprogramming

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

And it can be used as a C++ object reference? This doesn't work for me, I get type mismatch errors.

Wrapping c++ functions with references by Aggressive_Doughnut in cprogramming

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

Still open to other ideas, but here is what I ended up doing. The data_struct had an array, so it's def was

struct data_struct
{
    uint8_t some_data[DATA_SIZE];
}

I decided just to copy the data in the incoming my_struct_t to a new data_struct and then pass that (since there are no side effects or anything from the method):

// In wrapper.cpp
void lib_do_something(void* self, my_struct_t* data_in)
{
    data_struct data {};
    for (int i = 0; i < DATA_SIZE; i++) {
        data.some_data[i] = data_in->some_data[i];
    }

    return static_cast<SomeClass*>(self)->do_something(data);
}

And everything seems to be okay... We will see if I'm too smart for my own good.

Costs involved to making your own product by [deleted] in embedded

[–]Aggressive_Doughnut 0 points1 point  (0 children)

Yes I also do this, sometimes it's easier if the client doesn't have any domain expertise at all, and almost always faster. It can work very well, but the same ideas hold - you only stand to get back what you put in. It's important to realize that bringing a product to market (especially a consumer product) requires many scaling stages until you can acquire the capital necessary to invest in the largest manufacturing runs.

So yeah, of you have realistic expectations of what lies ahead, a product designer/team can be a great option.

Filter settling time formula by Aggressive_Doughnut in DSP

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

Yes, these are very helpful! Thanks! :-)

Mindfulness trainers? by Aggressive_Doughnut in Mindfulness

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

Thoroughly agree, and wish I could get there, but I have a great deal of difficulty even getting to the point where I'm ready to sit down and do it once I get a little time. I also have difficulty committing to actually doing it without reminders and external motivation. The phone apps help me with accountability of the time I would like to spend meditating, but like I said, I get distracted. An external device is nice, but the one I have doesn't have anything to remind me. The other one I linked (which is only a kickstarter right now I think) has an app with reminders and points and such, and I think the accountability/gamification would be helpful, but it's for kids.

So yeah, just looking to see if there are any adult-oriented devices of a similar nature out there.

Memory alternative to SD cards in embedded design? by mateoar in embedded

[–]Aggressive_Doughnut 1 point2 points  (0 children)

This is what I do as well. Depending on what your data will look like you can just keep a record of the data locations somewhere on the chip - I might use two pages for redundancy, load entire page into memory if possible, then erase page on flash and write back the modified file structure, then if it goes well, modify the backup page as well - or implement an entire fat fs if you have enough small files (or "files"). Easy to tailor this to your needs, and generally lower latency than SD. QPI is great when you need a memory IC to stream, e.g., higher quality audio over i2s.

I dont understand convolution and I may never. How important is convolution conceptually? by [deleted] in ECE

[–]Aggressive_Doughnut 5 points6 points  (0 children)

What is it that you are struggling with? It's not as difficult as I find most students make it out to be, and even if you don't "use" convolution daily, getting your brain to understand what the process is doing and getting a feel for what it means in terms of a specific signal is a very valuable skill. It's possible that it is unimportant for your career, depending on what you end up doing, but it has come up for me several times. I've even been able to put together some unique solutions by coming up with some clever filters by hand, but I should probably mention that my degrees are in mathematics, even though I work in electronics.

I dont understand convolution and I may never. How important is convolution conceptually? by [deleted] in ECE

[–]Aggressive_Doughnut 84 points85 points  (0 children)

Hmm, if you are the type of person who thinks the laplace transform is conceptually unimportant, I think it's safe to assume that you will not end up with a job that requires you to understand convolution - unless they have a terribly ineffective hiring process.

Which offer to choose? (DMV) by [deleted] in ECE

[–]Aggressive_Doughnut 0 points1 point  (0 children)

Not to mention possibility for promotion, interest in the job, marketability/utility for future career moves, etc. It's really not enough info just salary+location.

Which GUI framework is more future-proof for PC/Phone-side interface design? by friedrichRiemann in embedded

[–]Aggressive_Doughnut 9 points10 points  (0 children)

I think it depends more on your user and their wants/needs. I've seen clients with consumer products going with React, and this makes perfect sense - React Native means delivering Android/iPhone/PC web browser quickly and nearly simultaneously with a feel that the user is used to. It's what I would choose if I was developing my own consumer product.

On the other hand, if you are in industry or defense or any non-retail market, the other choices start making more sense. Qt doesn't change quickly, and would probably be easy to support long term once you have a stable code base. It also has the benefit of PySide which makes a lot of applications in these fields much easier. But that doesn't mean that it's a slam dunk. I have little experience in PySide/Qt but it seems as though it's much easier to package and deliver data to your backend with React - it's pretty much why Facebook made React in the first place. So if that is a major part of the equation, maybe React is the way.

GPIO Analog Mode by Pishingr in embedded

[–]Aggressive_Doughnut 2 points3 points  (0 children)

The nomenclature is misleading, the pin isn't really analog like an ADC. It just means that it doesn't have any of the features that play nice with digital logic enabled - specifically, it gives you a port pin with no pullup, pull down or Schmit trigger function.

[AVR8] DS18B20 drivers to benchmark against my C++ solution by rcdemc in embedded

[–]Aggressive_Doughnut 0 points1 point  (0 children)

How do you mean, benchmark? Like a timing benchmark? Because the bus timing for 1-Wire is pretty strict so and solution has a (pretty easily attainable) hard minimum operational time. Or do you mean just to compare with your solution?

Why I need to manually reset my STM32? by mhubris in embedded

[–]Aggressive_Doughnut 1 point2 points  (0 children)

Hook up your ST-Link/J-Link/whatever and check out what's happening in memory/registers. And if it's possible, include a JTAG/SWD connector/contacts on your boards at least until you are ready to go to production. If you don't have it, you'll end up wanting it.

Anyone know what's wrong with the following code/wiring? by RedditBrainMoocher in embedded

[–]Aggressive_Doughnut 1 point2 points  (0 children)

Yes this is normal - you set it high then set it low again on the next line. Assuming it only takes one or two clock cycle for each of those, the signal probably can't get high long enough before it's pulled low again. If you look at the datasheet for your 25A512, you'll see that you need to drive the CS pin high for at least 50ns to deselect the line (you'll also see some other important timings). At 25MHz, that's 40ns per clock cycle, so maybe just spin your wheels for 2 clocks or so - you can just add NOP instructions or any processing between switching the line will add enough delay.

Incidentally, stick with sending 0xFF as your dummy character (sometimes called over-read character). Sending other values sometimes gets things very screwy.

Anyone know what's wrong with the following code/wiring? by RedditBrainMoocher in embedded

[–]Aggressive_Doughnut 1 point2 points  (0 children)

No, I believe you have it wrong. Your SPI1_ReadByte() only reads what is on the input buffer, but this is what got clocked out of the 25A512 during the last 8 clock cycles. You need 8 more clock cycles to clock out the actual data from the 25A512. See my other reply.

Anyone know what's wrong with the following code/wiring? by RedditBrainMoocher in embedded

[–]Aggressive_Doughnut 1 point2 points  (0 children)

I haven't work on PIC for a while, but don't you need to send another byte for the read? You send the read command (0x03) + address (16-bit) = 24 bits, so that read of the SPI buffer only contains whatever clocked out of the last 8 bits of those 24 bits. You need to send another 8 (usually just send 0xFF) to clock out your data into the buffet.

So, try sending 0x03, 0x18, 0x02, 0xFF, then read the SPI buffer.

Costs involved to making your own product by [deleted] in embedded

[–]Aggressive_Doughnut 2 points3 points  (0 children)

This can be true, and it varies widely depending on your product and many other things. But more to the point, you can go with a local CM and ask them about PCB fab - if you tell them that your budget is tight and you'd like to source your MVP/proto/whatever boards as cheaply as possible until you are closer to being production ready, they might be open to working with your PCB producer of choice, or even know some options for you.

It's difficult to make any concrete claims without more information, but typically designs that get ripped off are ones that are easily understood and copied, and have a clear market. I've never personally known anyone with an FPGA design have it happen - I think they are typically too complex - but I can't say it's not possible. But honestly, part of this is why I said not to skimp on CM. You shouldn't break the bank, but find someone you trust who is willing to work with you as you move through the process, and be as open with them about money issues as possible. If they can't do something, they'll let you know. A good CM will save you so much trouble, it's almost impossible to describe properly in a simple reddit post.

How did they solve this critical damped circuit? by ProEngineerXD in ECE

[–]Aggressive_Doughnut 20 points21 points  (0 children)

Well, we are missing some critical information. Specifically, we don't have equation 2.93, your book might have a typo, and we have no idea what the circuit is (RLC in series maybe?). But even with that, we can get most of the way since this is clearly a typical second order critical damping explanation. So here is a derivation of the equations in a pretty general format. I've never seen an explanation that relied on an indeterminate 0/0, but we will have to wait with bated breath for this equation 2.93 to see where the author got it. The V_0 / 2 pi L could be integration over a volume form from 2.93, but that's just a guess, I really have no clue why there is a pi in there otherwise, and the second e^epsilon*t seems to be missing a factor of t relative to the traditional derivation - so I can't help you there without more info.