What's the best thing you ever made ?

Status
This old topic is closed. If you want to reopen this topic, contact a moderator using the "Report Post" button.
After a few years repairing 1960's consumer electronics, I walked into a Motorola plant in 1972 and said "hire me." I was one of about 500 applicants answering a full page add in the Miami Florida newspaper. I got the second highest score ever made on their pre-employment test, so I was a new addition to their assembly line, testing, tuning and fixing two way radios. After about a year and a half of that I got into the calibration lab where I repaired and calibrated test equipment and maintained the radio production lines.

A team of engineers and scientists that had traveled from across the country to use our electron microscope only to find it broken on a holiday weekend when the closest service tech was 1000 miles away in Boston led to me fixing it. The semiconductor device guys were real happy and sent me prototype silicon for anything related to the MC6800 / MC6809 chips for several years, so I played with them a lot in the mid 70's. I had a full blown MC6809 system that took up a whole workbench in my house in 1975. Today a simple PIC chip could stomp it in any benchmark. All programming was in assembly or Basic. A decent "C" compiler didn't arrive until the MC68HC11 chips came out in the mid 80's.

After about 10 years of cal lab I convinced a boss to make me a product development engineer doing RF circuit design. This was in 1984. In 1990 it became obvious that even though I was a high ranking electrical engineer, I had only a high school education. This made some of the management people angry and some other people in the same situation were dismissed or laid off for stupid reasons. I was told to get an "engineering degree" or my job could be at risk. The good news was that Motorola would pay for it. I decided that I really only needed to fulfill those requirements, so I enrolled in a local college's computer engineering program, and got the necessary degree. The experience taught me that I didn't want to be a programmer for a living.

I moved around from division to division at Motorola for a total of 41 years, mostly doing RF design work. When I got tired of doing something, or quit learning new stuff, I moved on. I also got Motorola to pay for a masters degree in electrical engineering too when I wound up in the advanced research and development group where I stayed for 12 years, then retired.

In much of my career I was involved in building one off prototypes, test fixtures, test systems, or EVB's for custom RF IC chips we developed. This was what I truly liked doing, and we had everything needed to make professional quality stuff in house.

Some of the test fixtures used PIC chips or a single board computer of some sort, and I often wrote the code for them in "C." The code for large projects like radio prototypes was written by the software development team.

Some I/O intensive projects used a Digilent Chipkit MAX32 board which can be programmed in the Arduino IDE. I usually just erased the bootloader and programmed them with MPlab, the Microchip IDE, since I had been using it since the PIC1654 arrived in the early 90's.

Arduino IDE should be put down

The Arduino IDE has made it possible for many people who would not be able to use a full featured IDE to create a whole new world of "makers." It serves it's intended purpose. The Teensy boards that I use for my music synthesizer projects are programmed in the Arduino IDE, and I have grown used to it.

Yes, it has its quirks and limitations, but the Gnu C compiler behind it will eat and compile full C++, so it is useful for most people who don't write code for a living. Those who do, at least in a corporate environment are probably stuck on whatever VCS the company mandates, just like I had to learn 3 different PC board layout environments depending on which Motorola division I was working for at the time.
 
Member
Joined 2019
Paid Member
Sorry, I know this is TL;DR but I have opinions...

My gripes with the Arduino IDE aren't the way it works with the compiler, but that it does little to help with the process of writing, debugging and changing code.

That might be OK in the days when most programs were controlling a single processor and a couple of peripherals (as many still do) but it's pretty useless for more complex systems. I'm planning a preamp with a touch screen (E-Ink) UI standby, and volume and input, output switching with control through WiFi (from my phone app) and Bluetooth. There will be a fair bit of code to write. Wouldn't fancy my sanity using Arduino IDE.

The IDE I use for Java, Android development has full syntax highlighting and offers features that let me write and document code quickly and easily. When I make changes, they're easy to manage. I can:

  • Rename anything without the acrobatics of search and replace, and with conflict warnings to boot.
  • Search for classes, variables methods
  • Search for uses of classes, methods, variables
  • Jump to definition, declaration of classes, methods, variables
  • Completion of names
  • Smart lists that have the stuff you use most at the top.
  • Extract code into methods and check for duplicates and replace those with method call too
  • Extract hard coded values and turn them into constants checking for other uses and replacing those too.
  • Highlight errors as you type offering fixes and optimisations

Damn, it even spell checks comments.

Arduino IDE is a dinosaur. Back in the early 2000's I was writing Java and I paid for my IDE myself because I thought Eclipse was awful (it was) and my time (and blood pressure) were worth the £100 a year it cost me to get something that made life easier, that could be worked with, not worked around.

30 years ago I was using IDEs that offered better editing facilities than Arduino IDE.

VSCode+PlatformIO offers some of this, though the 'intellisense' handling of C++ isn't complete and it partial fails on the UI complexity test. But I can easily manage different projects, on different boards (support is broad) and do stepwise debugging with J-Link or other similar hardware. But configuring the editor is pointlessly obscure/difficult. Though, fortunately, I can live with the defaults.

I good UI lets you use it for the tasks you most want without forcing you to learn a wall of new stuff (Atom take note), UI's that exhibit initial complexity are a fail. I'd agree it's not an easy thing to achieve and can be time consuming too. But it is doable.

As a first stop, to try something out for an utter noob Arduino IDE is OK, but none of the features in the list I've given above would make it harder to use for first timers who'd never heard of refactoring and were learning C at the same time as device programming.
 
The 'best' thing I ever made is a piece of computer source code originally written in Delphi Pascal. The code is a class with methods to store and calculate the value of an algebraic expression. The mode of operation of the class to evaluate expressions is in the same way expressions are evaluated on paper. This is done using a single stack of expression elements like operators, brackets, numbers, variables and function names.

After about 15 years I translated the class into C.
 
it does little to help with the process of writing, debugging and changing code.

True. There are plenty of advanced editors that help the process. I find it a bit frustrating when something doesn't compile and the cryptic error messages are of no help, and often bear no information leading to the real error.

I started out writing code in assembly in the 70's, using a simple text editor, so the Arduino editor isn't too far along it's evolutionary path from that text editor. I learned way back then to put hardware into my project that helped me trace where the code went wrong. Often this is just a simple LED or set of pins to connect a scope or logic analyzer.

If you look at some of what's being written for the Arduino today (git hub or hackaday) it's easy to see that the super wide gamut of coding ability and organization ranges from very simple to well organized modular code. My stuff falls near the simple end of the scale.

Microchip's latest iterations of MPLAB are pretty good by the standards of some programmers I know, but I find them rather complicated and I don't know how to use many of their features. Then, I can go for years (and have a few times) without writing any code. When I return the IDE's have changed and I just figure out how to use what I need at the time.

source code originally written in Delphi Pascal.

When I started the college programming classes in 1990 the hot ticket was Borland Turbo Pascal. We used it for about a year before switching to Borland Turbo C. I wrote a large program in Turbo C 3.1 that ran on a DOS 80286 PC. It controlled a large stack of HP test equipment and a temperature chamber over an IEEE 488 bus and took parametric data on a radio transceiver board that went into some Motorola products. It was intended as a one time use setup to take certification data on a batch of 30 to 50 boards. It wound up being the test system for the first year or so of production.

and do stepwise debugging with J-Link or other similar hardware.

Many of today's Arduino users have no idea what that or any ISP/ISD or JTAG device is. It is common in today's world to dumb down the UI and use case to the level of the lowest skill level user in order to accommodate the largest possible user base.

I worked on a cell phone design team for about 5 years in the early 90's. The people myself and my friends associated with were NOT a cross section of society, since we were mostly all engineers. In order to test phones in the hands of the average user, we set up a booth at the mall offering a gift card to people who would test our phones against the competition with all the names removed.

The "BIG 3" phone makers (Motorola, Nokia, and Ericsson) of that time are ALL gone. Yes the names may live on, but the original companies behind them are no longer making phones. The upstart that appeared in 2007 (Apple) with a super simple UI now owns the phone market, and is being chased closely by another "simplified" UI (Android) that first appeared in 2009 (Samsung Galaxy S). I got my first iPhone earlier this year and find it very frustrating.
 
Member
Joined 2003
Paid Member

Attachments

  • images (1).jpg
    images (1).jpg
    6.3 KB · Views: 73
Status
This old topic is closed. If you want to reopen this topic, contact a moderator using the "Report Post" button.