However, in the last years, following the Atmel acquisition by Microchip, the price rise on suppliers like Mouser started to make them look unattractive. But I still prefer the 8 bits ;-)
However, in the last years, following the Atmel acquisition by Microchip, the price rise on suppliers like Mouser started to make them look unattractive. But I still prefer the 8 bits ;-)
For example, recently I found that the fumes extractor in the kitchen of the flat I rented failed. The PIC on board got tazed with 10V from a broken PSU. I fixed the PSU (replaced cap and regulator, added TVS diode for protection), but the programming on the PIC was lost.
So I found that there is one AVR with matching pinout that I could use in place of the PIC. Thanks to AVRs being so easy to program I could program and test it in an hour or so, and even added some extra features.
I do other projects where I need more power (Cortex M3/M4), but AVR is hard to beat where it comes to how quickly you can get simple things going.
I have almost 2 decades of interesting experience as a software dev. I am now learning hardware design so that I can create niche hardware products and use my dev experience as an advantage.
I decided to fix it only because I am of the opinion that if I want to act professional in any area I can't shy away from projects like that.
If I calculated the time I spent on this I could have easily bought few of these, new, for the time I was not spending on billable hours.
I know it's one of those compliance issues, but it might be a good idea to have an electrician come out. Last thing a renter wants to see, is bodged together "fire badness".
I'm not saying yours is by any means! But sane-ness and law hardly go together :/
My kitchen was completely miswired since the building was built. The ground exchanged with neutral line. I tested the lines and put it back together as it should. There were many complaints from previous tenants but nobody was able to figure out and fix it -- seems so basic but nobody could do it.
I get you - that your work is likely higher quality, and you could claim ignorance if anyone did have a complaint.
But yeah, on Sunday, I redid some of our outlets and switches. We live in a trailer, and some of the switches were getting intermittent, and some outlets were loose to the point of turning off stuff if they jiggled. But.. I did find out that 1 outlet in the bathroom, the hallway lights, and 1 wall of the living room were on 1 gang... (sigh). I have my work cut out for me if I actually want to do it right.
I think its best to start by utilizing your software experience as much as possible and having just enough hardware to get by. Also don't try to learn/solve too many problems at the same time.
Most of my projects is relatively little/simple hardware + lots of features in software.
For example -- one of my complicated projects requires very precise temperature measurement, precise regulation of mains AC power to 1kW heating element, dealing with PCB environment being very hot and humid (up to 80C), etc.
I am splitting the effort of learning all of those things, and first thing I am building is a precise, standalone thermometer. I will build some software features (data acquisition to SD card, USB, etc.) which is relatively simple compared to getting precise temperature measurement.
Then I will maybe build standalone power regulator that I could have many uses for especially when connected to the thermometer (for example control my oven to do reflow!).
Once I know the building blocks I will attempt building the complex project I have in mind.
Previously there would be one switch to control light, 3 switches to control speed modes and extra switch that I don't exactly know what it did -- probably it controlled some kind of timer.
The 3 switches that controlled modes were 0/1 (change speed to 1 if anything else than 1, turn off if it is currently 1), and 2 and 3 which would turn on 2 and 3 speed mode.
I have added a 500ms long press to 0/1 switch which means that whatever is happening it turns off both light and fan at the same time. You don't have to turn off light and fan separately and you don't have to press 0/1 twice to reduce the speed to 1 and then to turn it off.
As it was sometimes difficult to figure out which speed it was on without looking at the indicators (on the side and not on the front of the extractor) you never knew you had to press it once or twice which was quite irritating.
I haven't looked inside the fan because it worked correctly. I also didn't want to test it to see how it works so I figured it out by analyzing the PCB. Actually that was quite good idea because the relays seem to be connected in such a way as to only allow valid combination to be sent to the fan even in case of invalid input from the microcontroller.
I suspect bad things would happen if I sent incorrect inputs to the fan -- looking at how crappy the board was but at the same time that the person put effort into placing the relays to explicitly disallow invalid combinations of power lines to the fan.
Yes, of course, but it just doesn't look good when the price almost doubled in twelve months, specially when you have better and more powerful micros like the STM32 for less money.
If you can get both MCUs to do the same thing but one of them takes 1/10th the time to set up then which one is better?
Any investment in time or tools is orders of magnitude more than prices of these parts.
Agree for getting things going though - definitely faster and none of that PICkit crap to deal with.
For me there just isn't enough middle ground between 8-bit AVRs and ARM Cortex that would justify learning another platform.
I might be biased, as I learned starting with AVRs and then took to Cortex-M3/M4 when my projects outgrew 8-bit. If I started with PIC that would probably be PIC/Cortex-M, but AVR is so much easier on a newb like I was few years ago.
Want 8, 2 bit timers? Sure thing! One large 32bit timer? Done!
Having a CPLD to drive your peripherals so that you can reconfigure them is a brilliant idea. The fact that you can drop down to VHDL is an awesome bonus. They've also got some small reconfigurable op-amps built in as well that lets do you really clever things while sleeping.
The nRF51 (used by micro:bit) and nRF52 chips are in general very nice to use. I'm really looking forward to more breakout and development boards coming out for nRF52840 which is just a great chip that can do just about everything (Bluetooth and Thread, at the same time even! Also USB! And PDM microphone input!)
Incidentally, these are also designed in Norway, by Nordic Semiconductors. A lot of the engineers from Atmel has jumped over to Nordic recently.
Disclaimer: I'm in a position where I'm obviously extremely biased (without being specific), but I'm also a hobbyist and I sincerely enjoy using these chips for smaller projects. Even if I don't use the radio.. they're just good microcontrollers.
You can source predone boards for Maple Mini at $4/each either on eBay or aliexpress. To be honest, I can't even source the individual parts and 2(4?) layer boards for 4$/each. No bloody clue how the Chinese do. But as long as they do, they get my business and i'll keep using them in my build.
Maybe later on, I'll unfold the STM32f103 into its constituent parts and mount them on the board directly.. But still, damn the microUSB connectors are pricy.
https://www.aliexpress.com/item/10pcs-5pin-Female-Micro-USB-...
Also don't forget what is IMO the main advantage of STM32, which is the ST-Link programmer. Even the official ones are cheap and the clone ones are like $2, but you get a programmer that gives you real debugging. You can also reflash them with the Black Magic firmware and have a self-hosted GDB debug server for generic ARM.
Regarding directly breaking out the STM32f103, this gets at my main problem with the STM32F (and most 32 bit micros AFAIK), namely that it only comes in LQFP, which is pretty irritating to solder by hand without using an oven. There are a few TSSOP ARM micros which I don't mind soldering but it's a hassle to make a one-off quick project if I have to use LQFP or even worse QFN.
Looks like I'll have to find a component dealer and just buy a bunch of stock components from them. None too happy about 3-5 weeks leadtime, but damn they're a magnitude cheaper.
Oh, and I do hand SMT rework (thanks to my 20/15 eyesight). Doing some of the smaller packages isn't terrible. And Ive found that I can reliably do BGA in a converted toaster oven - as long as I flux correctly and do about 10c over recommended ball solder melt temp. It's a wee finicky, but ive only had 2 fail out of a dozen (I was too impatient and removed it hot - big mistake).
My Annoyance is that to get more RAM/FLASH you tripple the price which is ridiculous. I also use PIC18K chips which are a similar price at 32KB/2KB but only cost $0.20 more to double the FLASH/RAM/CLOCK and so are much better value.
Clock for clock the AVR is a more efficient chip so Microchip have no real excuse not to do the decent thing and give us a 64K/4K version of it without the stupid price hike.
32 bit is so overkill for most applications but you just get so much more for your money with them.
A lot of people seem to think everything needs at least a Cortex-M0 but in reality, an AVR or PIC is more than enough for most projects.
There's also a lot more accessibility with through hole projects. Sure it's larger and more expensive than buying a pre-built board, but for most beginners through hole is way more accessible than surface mount.
[1] - https://rawhex.com/
[2] - https://docs.hidiot.com/
[3] - https://rawhex.com/blogs/news/ghost-hunting-with-the-hidiot
In 2010 for one-off art project (lot's of MCUs on RS485 controlling LEDs and pushbuttons) we had to switch from ATmega8 to AT89C2051 because it was the only MCU that we could source in time for the event for reasonable price and we had (semi-)reliable programmer capable of programming it (notice the 89C, not 89S).
After that I pretty much switched to MSP430 for such things.