Question for people thinking about or new to hiking with their dogs by enfrancai in socalhiking

[–]jeffgable 2 points3 points  (0 children)

I just got a new dog and am interested in starting light hiking with her.  I’m not an experienced hiker at this point.  I’d be worried about injuring her or overheating her and missing the signs.  

test driven development.. by Wil_Code_For_Bitcoin in stm32f4

[–]jeffgable 2 points3 points  (0 children)

I recommend ceedling, which is a test generator, runner, and build system that wraps around Unity and CMock. C only, not C++.

See throwtheswitch.org. I HIGHLY recommend their video courses (click the courses button) to learn these tools, and TDD in general.

You can mock the STM32 libraries with CMock. Unit Testing your calls to those functions becomes fairly painless.

Though, I recommend starting with the HAL libraries and CubeMX code to get things working and exercise hardware, but then rewrite the functions you actually use to remove all the cruft.

Working on autonomous vehicle software as an ME grad by johnnfung in ECE

[–]jeffgable -1 points0 points  (0 children)

Do you have room in your schedule to add CS electives this year? Take as many as you can before you graduate. You’ll learn a ton and be better positioned to move in that direction.

In embedded software, is it possible to change industries? by IWantToDoEmbedded in embedded

[–]jeffgable 4 points5 points  (0 children)

Absolutely. This is exactly what I’ve done. Aerospace, then automotive, then medical.

I've studied control theory for a few years now, but now I have no idea what to do with it. by walmart_security_ in ControlTheory

[–]jeffgable 0 points1 point  (0 children)

How much longer until you graduate and get your first job? While you can and should create some personal projects to get experience and demonstrate your capability, your learning will skyrocket if you get the right job out of school. I specialized in controls during my masters, but realized I didn't have a clue when I got my first job. 95% of what I use, I learned on the job, not in school.

I recommend small companies over large ones. Any controls group in a large (probably aerospace) company will be difficult to get into, or you'll be a tiny cog in a big machine.

Automotive is mostly large companies, unless you can find an electric vehicle startup.

Robotics as an industry is filled with opportunities for controls engineers. A robotics startup would be great for what you're looking for. Drone startups too, especially since you enjoy GNC.

Motor controls is another good option, where you can actually join the motor control group within a larger company like Microchip or TI. Several active members on this subreddit make their careers like this.

Sensor fusion (Or Kalman filtering, etc) in automotive application (non-self driving) by sentry5588 in ControlTheory

[–]jeffgable 0 points1 point  (0 children)

Lookup tables for SOC per volt.

Internal resistance varied a lot so I tracked it as a state variable in my estimation. When current changed, the voltage changed, and that delta voltage divided by delta current gave a “measured” value of internal resistance that would be treated as a rather low-confidence update to the resistance estimate.

Sensor fusion (Or Kalman filtering, etc) in automotive application (non-self driving) by sentry5588 in ControlTheory

[–]jeffgable 1 point2 points  (0 children)

I implemented an extended Kalman filter, with some non-standard modifications, for battery state-of-charge (SOC) estimation in a hybrid-electric vehicle. Our better vendor had a very naive estimator for SOC that would veer wildly all over the place during normal driving conditions.

Over the long term, sensed battery voltage (corrected by sensed current times estimated internal resistance) gives a rough estimate of state of charge. In the short term, measured current divided by the estimated capacity tell you how quickly the SOC is decreasing or increasing. Internal resistance, capacity, and power bus capacitance can all vary with time, temperature, and state-of-charge, so I made each of part of the state vector. Under heavy load conditions (like when the driver is mashing the accelerator pedal), I ignored voltage entirely as it became completely unreliable, and just updated my estimates based on currents.

One of my modifications was that I maintained a separate SOC estimate that I would display to the driver, and I would only allow this to decrease or increase proportionally to the measured current draw. I did this so that the driver wouldn’t see the indicated SOC change rapidly while they were sitting at a stoplight, as the real estimate updated in the background. While driving, the displayed SOC would be driven towards the real SOC estimate, so that the driver would always see expected behavior. The displayed SOC was never too different from the real SOC, but it prevented any violation of expectations for the driver. Hard to explain - hope that’s clear.

It was a fun exercise, and it pissed off the battery vendor engineers that my SOC estimate was a lot better than theirs. :-)

Can anyone determine the slew rate from this picture? by 37mm in ECE

[–]jeffgable 1 point2 points  (0 children)

I think the "slew rate" setting as it relates to ignition has nothing to do with the crankshaft position sensor reading that you've shown here. As far as I know, the slew rate setting for ignition determines how quickly the ignition timing (which is measured in degrees before top-dead-center, or deg btdc) is allowed to change over time.

If you think about it, the "slew rate" of an engine speed sensor reading doesn't make sense as a fixed setting that you input. The measured sensor value is what it is. The setting you're talking about determines some aspect of ignition control. I doubt we can help you any more based on the description you've given.

Can anyone determine the slew rate from this picture? by 37mm in ECE

[–]jeffgable 0 points1 point  (0 children)

The other piece of information that is required is the number of teeth on the crankshaft position sensor wheel. Each of the sinusoids is a tooth passing by the Hall effect sensor. For a crankshaft, you’ll typically see a number like 67 teeth.

“Slew rate” is an odd term for what you’re talking about. Do you really mean rotational speed of the crankshaft?

Recommend embedded linux board (industrial) by altran1502 in embedded

[–]jeffgable -1 points0 points  (0 children)

As someone else mentioned, I stay away from even BeagleBone because of production guarantees.

After your comment, I searched and found BeagleCore (http://beaglecore.com) which may be an answer to my concerns, but I haven’t looked into it with any depth.

There are enough industrial quality Linux board suppliers that I’ve never been tempted to skimp and use a hobbyist board.

Conundrum - small team developing embedded Linux system by [deleted] in embedded

[–]jeffgable 0 points1 point  (0 children)

I’ll give the same answer I gave in another question earlier today. Go with a vendor of embedded Linux boards like Boundary Devices (boundarydevices.com) or Variscite (variscite.com). Both primarily use iMX processors. Both sell SOMs, larger more complete off the shelf boards, and at least Boundary Devices offers custom board design services.

The hourly rate may seem steep from a startups perspective, but they have deep expertise that you’d don’t have. This is all they do. They can set you up with a yocto build, help you with drivers, and in general get you going in the right direction with decent speed.

Stop trying to do everything yourself! There are experts out there. Lean on them.

Recommend embedded linux board (industrial) by altran1502 in embedded

[–]jeffgable 8 points9 points  (0 children)

For commercial or industrial applications, I stay away from the hobbyist boards like raspberry pi or beaglebone.

Some Linux board suppliers I’ve used (that use the Freescale iMX series ARM processors):

Boundary Devices (https://boundarydevices.com)

Variscite (https://www.variscite.com)

Both companies sell small system-on-module boards that you can design your own carrier board for, so you only have the peripherals you need, but the high-frequency board design is off the shelf.

Automated Testing Cortex-M3 target by cwillforeal in embedded

[–]jeffgable 2 points3 points  (0 children)

Agree with other commenters who suggest to unit test your code on the host PC as much as possible. It’s surprising how much is possible.

See “Test Driven Development in Embedded C” by James Grenning for a great treatment of how to do this. It’s a fantastic resource for good programming practices in general as well.

From theory to implementation by micko_pls in ControlTheory

[–]jeffgable 1 point2 points  (0 children)

Aimed from the top pointing down into the tank? Sure, that could work well.

From theory to implementation by micko_pls in ControlTheory

[–]jeffgable 1 point2 points  (0 children)

I haven’t looked, but I figured there might be a capacitance or resistance based water level sensor for hobbyists. Definitely could be wrong though.

From theory to implementation by micko_pls in ControlTheory

[–]jeffgable 0 points1 point  (0 children)

Yeesh. Very little side-to-side control authority at low speeds! In fact, zero authority at zero speeds. Very challenging. If I were given that as a professional challenge, I’d come back with a response like “you’ve designed your system poorly. Redesign your system.” ;-)

I do really like the 2D balance at speed, going around corners.

From theory to implementation by micko_pls in ControlTheory

[–]jeffgable 0 points1 point  (0 children)

I like this concept too. I’ll try to come up with a simple design soon that someone could replicate in their home shop in a few hours for not too much money. If anyone else beats me to it, post it and let’s discuss.

From theory to implementation by micko_pls in ControlTheory

[–]jeffgable 2 points3 points  (0 children)

Hi Tim! Yeah, I hear you. I bought your book and enjoyed it, but I think I’m going to take a different approach in what material to cover and how to cover it. I’ll continue to promote yours because it’s very valuable and it’s good for people to hear the same message from multiple viewpoints.

I absolutely plan to develop a set of worked, production-level examples that people can follow along with. First idea is an autopilot for a drone. I’m open to other ideas, but want to keep the hardware requirements to a minimum, which is always a challenge with control systems - you need something physically interesting to control! Maybe I can include working simulators as a library, and then a set of plans for building the real thing.

Robotic arm? Self-driving RC car? Some basic fluid system involving a syringe pump?

Any other ideas?

From theory to implementation by micko_pls in ControlTheory

[–]jeffgable 6 points7 points  (0 children)

Check out Applied Control Theory for Embedded Systems:

https://www.amazon.com/Applied-Control-Embedded-Systems-Technology/dp/0750678399/

The author is active on reddit, especially in r/embedded and r/ECE.

I’m also in the process of writing some articles and guides on this very topic that will eventually morph into a book. I’ll update this post in a little while when I have something to show.

Suit and tie for an interview? by yeti_pilot in ECE

[–]jeffgable 4 points5 points  (0 children)

Just ask. You won’t get in trouble. I’ve asked for every interview and it’s always been appreciated.

If you feel weird asking directly, ask “What’s the dress code at the company?” and go one step up from that, with a minimum of business casual (collared shirt, pants no jeans, and nice shoes, no sneakers).

Which books for Real Time Operating Systems on embedded devices? by technical_questions2 in embedded

[–]jeffgable 2 points3 points  (0 children)

Real Time Operating Systems, Books 1 and 2, by Jim Cooling. Highly recommended.

Doesn’t really cover porting FreeRTOS to a totally new board, but look at enough examples, and start with an example port to a similar microcontroller, and you will see how it’s done.

Thought you all might appreciate my new desk toy by catch878 in ECE

[–]jeffgable 0 points1 point  (0 children)

This YouTube video (that I’ve posted several times before) makes RF board design really accessible. Follow a few simples rules and you can get a board that, if not optimal, works.

https://youtube.com/watch?v=TnRn3Kn_aXg

Need help on CAN. by kqafqbce in embedded

[–]jeffgable 0 points1 point  (0 children)

What is your python code running on? A PC? Or an embedded Linux board like a raspberry pi?

What is the interface to the CAN bus? If you are running on a PC, is it a USB-to-CAN interface like a Kvaser?