j4k3
@j4k3@lemmy.world
- Comment on What’s something society normalizes that you quietly disagree with? 9 months ago:
Auto emissions based on parts and not testing standards. I despise it with a passion. It is a corrupt authoritarian criminal scheme. I have no issue with emissions standards but I have a right to run any hardware I choose to achieve the required standards. I have a right to innovate and explore technology. Like a carburetor is actually far more efficient than any fuel injection system during cruise and mild throttle conditions. The feedback system is directly connected to the engine conditions. Sensors and fuel injector pulse width is far more inaccurate and stepped averaging. Combining a carburetor with fuel injection is a better system in many unexplored ways. Internal combustion technology largely peaked at the end of WW2. I used to get into studying that era of aircraft engines. The technology is accessible. The issue is that criminals killed grassroots innovation by forcing a monopoly of factory parts for emissions. I despise that monopoly.
- Comment on Washing machine PCB has a USART port. Do repairers use that? 1 year ago:
You are correct and I misspoke in my wording and stated logic. I had intended to constrain my logic to eliminating the potential of the entire script being stored or somehow altered and reloaded. Storing an error code is entirely feasible.
Now the machine will not even attempt to run because it is apparently trapped in an error state.
You might trace out the pins that go to any buttons. I am not super familiar with the 32L, but IIRC usually old Atmel chips only have a couple of hardware interrupts available.
So, when a simple CPU core is running, there are various ways to force it to stop what it is doing and divert attention elsewhere for things that are more important. At the general level there are flags that can be set to indicate higher priority tasks need to be completed inside the CPU. This is stuff like a block of serial communication is received and needs to be processed so that the buffer doesn’t get too full. Or, some timer expired and triggered some code to run next. Hardware interrupts are like these flags but are usually setup as the highest priority interrupts in the physical hardware. Like a person can make any Input/Output capable pin into an interrupt by turning it into an input, and simply checking the state of that pin in the code that is running. However, the hardware interrupt is very powerful and forces the CPU to only pay attention to whatever code is associated exclusively with that interrupt. Typically in the code, one would only use this hardware interrupt to set a flag somewhere quickly and return to execution of whatever was happening. There are a lot of gotchas that need to be taken care of if one wants to do something more complicated because the hardware interrupt isn’t like multithreading code in a desktop CPU where all the registers and states are saved. This is like, stop in the middle of a word on the exact letter you are pronouncing mid sentence while talking to someone about something important the moment that interrupt happens. It is quite likely that the key combo to reset your device is related to one of the hardware interrupt pins. It would be reasonable in the code to check if another pin is low when the interrupt happens. You know the device can be reset by someone. It will be just a combination of keys. If there are a lot of keys, this should limit the number of possibilities to something manageable. Write this stuff down and test methodically. Also be sure to check Louis Rossman’s new documentation project website and do a search on the EEVBlog forum if you have not already done so.
- Comment on Washing machine PCB has a USART port. Do repairers use that? 1 year ago:
In the last 10 years it has become common for devs to disable and remove or encrypt to prevent reverse engineering and repairs. If the device is older, the debug info from UART is likely still present. How useful that information is may be dubious.
Most of what you are saying about functionality is not in line with how a microcontroller works. The microcontroller is not sophisticated like a real computer. It is like a very simple state machine running on the device. Basically it is like a single long script that is not running on any kind of abstraction layer. When the device is turned on, there is the script. The script is not executed by some operating system or any other complication. The entire software stack is the script. Only, the script is actual hardware registers and flags and operation codes. There is a tiny amount of RAM that actually runs the script, like 16kb. There is the programmed memory, like 32kb. Then there is a tiny amount of electrically erasable and reprogrammable memory, like 4kb. The eeprom is the only section of memory that a microcontroller can access to write persistent data, meaning something that will still be present when power is cycled. I doubt many people use eeprom to save any kind of error. This is more like where a serial number might be saved, or more likely the calibration values for some internal control algorithm. It is not anywhere near large enough to save something significant like the script. It is far more likely that the script is just a state machine and is reaching an error state because of some missing or bad signal that it needs to continue running the script. This is likely your problem and the issue is like 99% likely to be hardware and not the microcontroller. Resetting such a device is just an interrupt signal that restarts the script. There is nothing dynamic about this. From the perspective of the original dev, the ISP programming interface has the functionality of brute forcing running code to step through each machine instruction and halt further execution while monitoring or changing any value present in any register of the internal microprocessor. This is super powerful but requires a pricy setup from the manufacturer in most cases, and a thorough understanding of the internals of a microprocessor’s registers, op codes, memory addressing, interrupts, clocks, and the ALU (arithmetic logic unit). In this type of device, text strings are far too expensive to have much, if any, value. Any such debug info is likely to be very terse. Text strings take an enormous amount of memory space to encode, so in general, these are not used very much. A microcontroller is a far simpler device than this. It is a computer in the sense of a device that can do Input/Outputs and run a control algorithm like a temperature controller with a PID loop.
- Comment on Washing machine PCB has a USART port. Do repairers use that? 1 year ago:
That is a microcontroller. I don't have a lot of experience with hacking around with commercial products like this. It is not capable of running something like embedded Linux or a standard real time operating system. It could in theory be running Arduino, but probably not with the ISP connector. It was likely developed with the Microchip toolchain for ISP support. In this instance, the serial port is likely used for feedback only and not some interactive like interface. There may be some functionality programmed or the port may have been disabled after it was used in the jig that did the initial programming and tests.
Most of the info you will find about using UART to hack around is related to embedded Linux where UART is a full terminal interface. Devices capable of running embedded Linux are the next level above something like an ESP32 microcontroller. The datasheet for the ATMega32L is not really relevant to you unless you want to rebuild the entire software stack from scratch. Reverse engineering and rebuilding is a major project even for a pro dev. The manufacturer as you perceive a brand is likely just a logistics and label maker with little to no relevance to your actual device. The components PR entire machine were likely out sourced and contract manufactured. In the world of contract manufactured goods, the software is usually just a checklist of features. As soon as the checklist is complete and verified, the dev gets paid and is never seen again. If the company wants something more or something changed it will cost a fortune for the old dev to return or a new one to read-in to the code and make changes or just start over. This kind of thing might happen when versioning is required because some part is not available or something like that during production runs. Each run is like a one time thing. Some capital is put together and parts are sourced, then the contractor makes like 5k of the thing over the course of 2 weeks. These go in shipping containers around the world with whatever brand stickers applied. When each run is done, the software and any unique tooling are consumables to the whole affair and not something anyone cares about or keeps like a real asset of value. It is probably archived in several private databases on various employee’s computers, but these are not connected in any way to aid or support your needs. It is in the best interest of the company to never give out this info. Also getting the whole microcontroller toolchain working is a major pain in the ass. That large datasheet is because a microcontroller is a whole computer all integrated into a single chip. It is just a very simple type of computer. You need to understand all of the peripheral parts of computing to really make sense of it in practice. It is not just a microprocessor. Embedded Linux means that there is a kernel and user space abstraction layer that makes the unique hardware irrelevant and abstracted away. Without this abstraction layer, you need to know and understand that actual hardware assembly, or use a language like C and a compiler for the actual hardware. This is the level you are facing.
- Comment on Washing machine PCB has a USART port. Do repairers use that? 1 year ago:
UART is often used for debug and programming, but there is no telling what it is running from this info. What is the processor? That info might recruit more help
- Comment on So…. What’s the worst idea you went through with? 1 year ago:
I never do recipes with anything. The lemons were a combo of a couple of dozen that were juiced and like a cup of brown sugar. The lemons were all fresh off a neighbour’s tree, and the water was all rain from the patio, but I’m a half city block from the Pacific too, so interesting water. I also took around a dozen or so lemons and sliced them into cubes. I removed the seeds and added something like 3 garlic cloves and an equivalent amount of ginger. I was just using a bunch of small like 6oz jars. I filled that like 3/4 with a 3% brine and maybe a couple of tablespoons of honey. They barely did anything and I thought they were all duds. I left them for 2 months and barely had to burp the jars at all. I ended up pulling the contents, drying and grinding them to make a zesty lemon spice that was alright. I poured the remaining juice from the small jars into the raw fermented juice I had made at the same time with just some added sugar that also wasn’t super active. I then crushed and processed a whole crab apple I was given, also locally grown, and let it go off wild for a few days. Then I added this to all the lemon juice combined and added a bunch of brown sugar. That really took off strong and needed to be burped a couple of times a day for a week or more. Finally I let it sit in the fridge for a few months before trying it. That one was really good. Probably the best lemon liquor I’ve ever had.
The rice thing was in a bad container and went sour. It is still curiosity but I can’t really get around using tap water in excess and needing to reduce it for more starch density. The first wash is probably viable but it did not seem particularly active.
About the best thing I’ve tried is pineapple by itself. Pineapple is insanely active to wild ferment. Something about it will go absolutely nuts and the juice has a really good flavor to sip or sauce. I only did a tiny amount. Like I was given an old fruit platter and put each thing in a 6oz jar for the heck of it. The pineapple generated higher CO^2^ pressures in 8 hours than anything else by far that I have tried.
The only other one I’ve done a few times are blueberries that were on the brink of going bad. They basically make a slightly fruity soy sauce flavor that is nothing like blueberries.
I guess you could say my recipe is always, “Thing going bad? Thing go in jar with salt brine.” Deep stuff ;)
- Comment on So…. What’s the worst idea you went through with? 1 year ago:
Coco powder sugar and the starch from rinsing some rice… dumb.
I currently have a 4 month BBQ sauce that is in part a fermented stale baguette, but also a ton of other wild ferments, stocks and stuff that have gone through many reductions. So far, the only thing I’ve fermented and drank was some lemons with garlic and ginger with a good bit of honey. That came out super sour like candy in a raw Sour Patch Kids candy but more clean and natural kinda flavor. Most of that still went into sauces. Almost everything I make goes into sauces because fruits turned savory juices, mixed with stock, and reduced make far better flavors than anything that can be bought in a store and were optimised for cheap mass production.
I’m really curious what anyone might be growing at small scales, like on a patio for brewing. Maybe even just bittering agents too?