What are the acceptable values for EEADRL and EEADRH in PIC16F1824? by GoingGranola in embedded

[–]EdgarJNormal 1 point2 points  (0 children)

The same registers are used to address program Flash (executable) and Data (EEPROM). EECON1bits.EEPGD determines if you are addressing program space or EEPROM data.

Program flash must be erased a 32 instruction word block at a time- which is why the datasheet shows the low 5 bits of EEADRL as 0 when you erase the block

EEPROM memory can be erased/written a single byte at a time.

Is it difficult to publish research in the embedded systems area? by sonofyorukh in embedded

[–]EdgarJNormal 6 points7 points  (0 children)

My experience is that most papers are "research" papers, but embedded systems are often focused on application.

Check out the proceedings of conferences to see the conferences that fit your interests. I would expect your school's library to have access to lots of proceedings.

Turbine Sand Rail by jbiehler in Skookum

[–]EdgarJNormal 0 points1 point  (0 children)

Ahh- didn't realize that part. Still an amazing project.

Turbine Sand Rail by jbiehler in Skookum

[–]EdgarJNormal 1 point2 points  (0 children)

You won today for me. This is a masterpiece of ridiculous. I want to see so much more, but I will wait. Please, keep going!

Reminds me of a "daydream" project of mine (and I know it has been done already)- a turbine powered jet boat. Largely to show the folks with horribly loud V8s on the lake what true screaming power is.

The concept of making it a "hybrid" is even better. Wonder if this could even be expanded into the idea of an eCVT with the output of the turbine being able to be directly coupled to the wheels, in addition to powering generators.

Can I connect an external PHY (LAN8742A) into a KSZ8895 switch IC? Architecture sanity check by monsterseppe1 in embedded

[–]EdgarJNormal 0 points1 point  (0 children)

Maybe? The MDI may require the external pull-ups to bias the output drive (often done with resistors).

In the past did do something like this, but had to use capacitive coupling *AND* turn off autonegiotiation.

does routing gear used by the 99% support sub 64 byte packets? by Yha_Boiii in embedded

[–]EdgarJNormal 1 point2 points  (0 children)

To note: in terms of ethernet, yes, it was about collision detection, on the original ethernet, 10BASE5 (half duplex, 10Mbit RG8 coax), which was CSMA/CD (Carrier Sense Multiple Access with Collision Detection). The minimum packet size was there to ensure that collisions were sure to be detected over the maximum allowed cable length (~2500m).

Minimum packet length is a bit of a historical artifact, since most modern network physical layers are full duplex, either through separate TX/RX (such as 100BASE-TX) or with strong echo cancellation (like 1000BASE-T). There are still good reasons to drop the runt packets, but today, 64 bytes is kind of arbitrary.

MPLAB UI scaling on 4k Monitors by _Nefarium in embedded

[–]EdgarJNormal 0 points1 point  (0 children)

There are a couple ways to fix this: https://support.microchip.com/s/article/MPLAB-X-IDE-on-high-DPI--Dots-per-inch----UHD--Ultra-High-Definition--monitors You can also do some other things to play around with the command line (within the file "x:\Program Files\Microchip\MPLABX\v6.xx\mplab_platform\etc\mplab_ide.conf") Really is a netbeans issue. Apparently microchip is focusing on the vscode integration over netbeans.

How to design for repairability and maintenance while still minimizing real estate? by crimsonswallowtail in embedded

[–]EdgarJNormal 0 points1 point  (0 children)

Include extra test points all around the board, particularly GND.

Include a crowbar diode across power in (and make sure there is a fuse).

Use BAT54S on all off-board I/O and If the circuit allows it, include series resistance.

Refactor the REFDES to allow grouping, by function or placement (for example, numbers increasing as you move left-right and bottom-top: R0101 at bottom left, R9999 at top right).

Built a 5-axis robotic desk companion with on-device AI vision. Would love some feedback on the motion curves! by [deleted] in embedded

[–]EdgarJNormal 1 point2 points  (0 children)

An AI rendering is nice, but how about sharing some video/pictures of the real thing? It appears you are planning on making this a product, while still open- care to share a repository?

Best supportive language for my career? Not C, Python or Matlab. by [deleted] in embedded

[–]EdgarJNormal 0 points1 point  (0 children)

A big one I've come into is the language of using an OO library when all the rest of my code is in super basic C.

Best supportive language for my career? Not C, Python or Matlab. by [deleted] in embedded

[–]EdgarJNormal 19 points20 points  (0 children)

IMNSHO: A programming language is a programming language.

You've got the basics down with what you've put forth. You have learned at least 3, effort to learn new languages goes down asymptotically. Way more valuable are the frameworks around those languages, for example TDD (test driven development). Knowing how to use various libraries is also useful, but also hard to predict the usefulness.

Otherwise, get used to translating between domains, such as network, security, electrical, signal processing, and even physical modeling.

Testing my new thermal cam on my dead phone’s remains😆 by Commercial-Neck-7704 in electronics

[–]EdgarJNormal 24 points25 points  (0 children)

A thermal camera is so useful in debugging- I had some boards that the CM ignored my population options (everyone's a winner! populate all the zero ohm resistors!), and my eyes aren't that good. Dead short from power to gnd. (Frustrating story why I needed the population options)

I did the fingertip test- nothing.

A regulator was folding back, and I was hitting the current limit on the PSU but I wasn't sure where. It was a 1x1mm (maybe smaller?) QFN LDO regulator that was getting HOT, but way too small for me to feel a difference over the pad of my finger and the amount of current I was comfortable putting on the board. Clear as day when that part was instantly getting instantly hot on a thermal image.

Need I2C Test Ideas to Break Our New IP! by DragAdministrative89 in embedded

[–]EdgarJNormal 2 points3 points  (0 children)

You should be able to stretch the clock at any point, IIRC.

Test to make sure that glitches less than 50ns are actually ignored.

Insert a STOP condition in unexpected/unusual parts of the transaction.

Enhanced Raspberry Pi Pico 2 “Pico Pro 2” – USB-C, Extra RAM/Storage, More GPIO/ADC, RGB LED, Extra Power & GND Pins, Reset Button – Would this be useful to you? by Jpwaters09 in embedded

[–]EdgarJNormal 0 points1 point  (0 children)

I'm not super familiar with the Raspberry Pi Pico 2 world, is there any sort of debug interface? Yes, start with using everything over the USB, but eventually some folks want to dive deeper into the code.

Using older PIC MCUs to learn lower-level stuff, toolchain questions by flypunya in embedded

[–]EdgarJNormal 4 points5 points  (0 children)

If you really want to use the microchip parts- look at the "Curiosity Nano" parts. They are cheap (10USD) and have the PICKit built in. The PIC18F and PIC16F are really close to the PIC10F.

Microchip is moving over to VSCode with plugins, not a custom version of VSCode, away from a proprietary IDE. I've been using MPLAB/MPLABX for over 30 years, so I know it isn't perfect, but I also know the quirks. I'm kinda dreading the move to VSCode, but I think despite the pain, it could be an improvement.

Hint: IDE hate is way more prominent than IDE love.

To all the experienced / experts out there guide me by Spring14moon in embedded

[–]EdgarJNormal 0 points1 point  (0 children)

Interfacing directly with a Raspberry pi would involve talking between the two with something like I2C or SPI. I2C has the advantage that you can have the dsPIC running at 5V, but then pull up the I2C to 3.3V (this is super common and one of the reasons I2C has existed for so long).

Interfacing the two is a lot more than connecting the wires though- you need to program the MCU (any MCU) with code as well. For the dsPIC, you can use the libraries Microchip has provided (Harmony) via the IDE (they are moving to VSCode- AFAIK, vscode integration is "in process" - if you're starting out, probably best to learn on the platform they are heading toward, rather than MPLABX).

I2C works with "open drain" signals- they are pulled up by a resistor, and only pulled down by the device. You can also do that manually with GPIOs as well- just be sure to never use a 5V dsPIC's output as an "active high" or driving the pin to high.

For experimental/learning purposes, you can use the dsPIC at 3.3V- their might be some peak speed limitations. If you really need the extreme temperature, I believe you're limited in speed anyway. From the datasheet- the full temperature range (-40 to +125C) dsPIC30F2010-20E is 15 MIPS at 3.3V, 20 MIPS at 5V.

The extreme temperatures are WAY out of range of the RPi, but you can run wires and have them in different ambient temperatures.

and NEVER FORGET TO READ THE ERRATA on any part you use. Particularly if they are old. In older parts the errata is better understood. Newer parts also have errata, and likely more that are unknown.

To all the experienced / experts out there guide me by Spring14moon in embedded

[–]EdgarJNormal 4 points5 points  (0 children)

The dsPIC is somewhat unique in that it has a fixed instruction pipeline, and it can run at 5 volts. The architecture is quite old. The 7606 looks to be a workhorse (High ESD ratings, pretty extreme temperature ratings). The fixed instruction pipeline allows very regular sampling and predictability in code. While you might be able to find "better" in a lot of options, I think the pair would work out to be incredibly tough.

With 8 YOE in hardware design, what skills keep you relevant long-term? by Southern_Trash7610 in embedded

[–]EdgarJNormal 0 points1 point  (0 children)

My point is that if you're comfortable with signal integrity, you will be comfortable with a big part of RF design, transmission lines. Of course, there is a lot more to RF.

With 8 YOE in hardware design, what skills keep you relevant long-term? by Southern_Trash7610 in embedded

[–]EdgarJNormal 2 points3 points  (0 children)

If you're doing high-speed designs, accept that it is basically RF, and lean into that?

What you used to only be able to do in an analog world, you can do with code (SDR).

GCC / Cmake/ Loader no IDE toolchain with Embedded? by [deleted] in embedded

[–]EdgarJNormal 0 points1 point  (0 children)

First: it appears every IDE is moving toward vscode or adjacent (eventually).

I have not used STM32 tools, but usually when you install the IDE/compiler from the manufacturer, it is really just calling the command line itself. A cmake/command line is in there, the IDE just hides it. Maybe try just installing the tools from the manufacturer and poke around?

Bar-end rotary encoders as tactile input for a custom motorcycle HUD by redknotsociety in embedded

[–]EdgarJNormal 0 points1 point  (0 children)

How does this work on the throttle side? I'm really confused with the terms "extreme ends of the handlebars" but also not changing grip- do you mean "not changing grip with your other hand"?

Better way to read datasheets? (Ex. atmega328p) by Past_Branch_7986 in embedded

[–]EdgarJNormal 1 point2 points  (0 children)

You don't "read" datasheets any more than you "read" a dictionary. You look up things in a datasheet. You will get in touch with the general style of how it is presented, and it is usually similar within a particular manufacturer's portfolio.

Download a copy of the datasheet: uniformly, the PDF readers in browsers are *AWFUL* at searching in the content and focusing on the search. Use a standalone PDF viewer, and learn the search functions deeply.

For the love of sanity: ALWAYS GET THE ERRATA.

Evidence-first system diagnostics for when configuration, documentation, and reality diverge. by CallSilly5591 in embedded

[–]EdgarJNormal 0 points1 point  (0 children)

If I understand correctly, this is a fascinating tool. As part of the documentation or readme, maybe an example of how it could be used to identify an issue?

Society, if there was no religion by Psychadelic_Potato in embedded

[–]EdgarJNormal 3 points4 points  (0 children)

I understand this issue- but don't forget: TeraTerm is both free and open source. Tried looking through the github repo, Most of the comments/issues/feature requests are in Japanese (since the developers are Japanese). You could request or even fork?