As others have mentioned, it looks like that was drawn the old fashioned way, with one of these:
along with some of these:
Tools that once were in every electrical engineer's arsenal, along with one of these:
Battery life was great, and they seldom crashed!
That doesn't look like any software was used, but a good old-fashioned drawing board, maybe a few symbol templates/stencils/curve templates used by someone who probably is a trained technical draughtman.
Making such drawings is a job where you actually needed quite some expertise, so technischer Zeichner (at least in Germany) is a proper Ausbildungsberuf (a ...
As others have said, they probably didn’t have any particular software available at the time of publication. If you are interested in a modern solution, however, check out the Circuit macros package for LaTeX. It has the wide gate in its library. From the manual:
Not having hardware during the initial stages of firmware development happens. Common strategies to deal with this are:
Spend time up front architecting the system carefully before you write any code. Of course you should do this anyway, but in this case it's even more important than usual. It's much easier to debug well thought out software than a pasta-...
I assume you are not alluding to a deeper philosophical discussion about information, power and entropy, but you are just interested in the practical aspects.
Very simply put, digital circuits need to measure input, digitize it, run it through some kind of processing and then transform the output into an electrical signal again. Digital circuits cannot ...
To answer Tyilo's specific questions:
analogRead(5) and digitalRead(5) will read from two different places. The former will read from analog channel 5 or A5 and the latter will read from pin 5 which happens to be a digital pin. So yes, if you want to read an analog pin with digitalRead you should be using A5.
analogRead requires a channel number ...
I'd still call it an ECO.
If the firmware is programmed into the micro in the factory, then that firmware and its specific version should be a line item on the BOM.
Changing the firmware means changing the BOM.
Changing the BOM requires an ECO.
Following on from that, a field update of the firmware should follow a similar process to that which would be ...
There are several aspects influencing the grade of detail the structuring of a project needs. For me one of the main factors is whether I'm the only one coding (what seems to be the case for you as you write you're the only EE) or if there are others involved.
Then there's the question of what "large" actually means. Usually I divide the design process into ...
Since my last update to this answer, I was lucky enough to find an online system that meets most of my (and the OP's) requirements for managing small electronic components inventory. The service is called Parts-in-place.
The system is based on a typical workflow of small electronics products companies (so the site says - how would I know, I'm just a ...
Of course you can, with the HCF instruction!
That said, I say that's impossible without any external circuitry, apart from power and such.
Even including some non purposely faulty connections possibly won't cut it: if you tie all the gpios to a power rail, setting them as output (to the opposite power rail) that can dissipate quite a lot of power. A gpio ...
It is most likely Fritzing.
It is an educational free software quite popular among newbies and teachers. It can draw wiring diagrams like the one you posted, or true schematics and even PCB layouts.
It can't simulate the circuit, though.
As Felthry and JRE said in comments, using Fritzing is frowned upon on this site and by professional engineers because ...
There are a few Arduino Simulator projects out there.
Perhaps one of the more mature ones is the Virtronics Simulator for Arduino, YouTube video here.
The Virtronics page linked above also lists a few other Arduino simulators, both free and paid.
Given the interest the Arduino evokes, there are likely to be many more such simulators out there, so no ...
I have been designing some PCBs recently and I would suggest you NOT to use auto-placer or auto-router for your final product. (Proteus has auto placer.)
First of all - Your software is as intelligent as an earthworm when it comes to auto placement or auto routing. In other words, it's dumb as a potato.
Auto routing would not know which placement will get ...
You can use CodeBlocks for arduino. CodeBlocks already works with quite a few microcontrollers, so I'm guessing that the arduino dev environment will be quite robust.
There is also an Eclipse plugin for Arduino.
Disclaimer: supercat said that first in a comment.
Actually, it is not possible to physical destroy most MCUs, but it is possible to wear it enough to start malfunctioning to a point where it is unusable. I have experience with TI's MSP430, so here it goes:
Those MCUs allows reprogramming the whole flash at any time. Not only it is possible to wear the ...
My router has a placer and support for "rooms". That let's you draw areas and assign parts to "rooms" from the schematic. The auto placer will group them together in the room the part is assigned to. Pretty sure it has support for this connector should go to this location too. There's also a tool that can do automatic decoupling placement and part ...
Without any insight into what it is you're developing, or which family of microcontrollers your hardware will eventually be based on, most families of microcontrollers have low cost development systems available that have a suite of common peripherals on them, which may allow you to simulate at least some of your eventual target hardware.
Humpawumpa wrote a great answer! I just want to supplement some of his points, but since this is too long to be a comment, I'll write a separate answer.
I was once in the OP's position — not the only EE, but the only EE who had done any MCU development in a small company.
I can't emphasize the importance of modularity enough, even if you're the only ...
Atmel Studio is the development environment Atmel provides for the microcontrollers behind the Arduino line. Atmel Studio 6 is based on Microsoft's Visual Studio which is a very complete C++ development tool.
You can customize Atmel Studio 6 to work with the Arduino libraries and compiler, as documented here.
One thing you're not considering is that a schematic does not contain enough information to lay out a board properly.
Basically, the PCB layout requires consideration and accommodation for a few dozen layout requirements per part, none of which are codified in the schematic. Consider just the bypass capacitors. To have an automated system properly place the ...
For any large project, I plan it as if there were multiple developers involved even if I intend to do the whole thing myself.
The reasons are simple:
1 Complexity. A large project will always have complexities involved. Having planned the project as if there were multiple teams involved means that complexity has been considered and documented. The number ...
Note that previous to 1.0.1, you could turn on pullups by using digitalWrite(). And you still can.
digitalWrite(13, HIGH); // Turns internal pull-up on
digitalWrite(13, LOW); // Turns internal pull-up off
This is an important distinction because INPUT_PULLUP obviously turns on the pull-up resistor. However, less obvious, ...
We have done an evaluation for my company some months ago because Excel Spreedsheet has reached its bottleneck when multiple engineers are working on the same product at the same time, track of changes, tractability. Finally, three commercial options left for us, PartsinPlace, Aligni, Ciiva. Though we have also looked into SiliconExpert and ArenaSolution, ...
Back in 1974-1975 I worked in the Design Automation department at Honeywell. The problem hasn't changed since then:
It's not computationally feasible to optimize. Like most global optimization problems, it's NP-Complete, meaning the complexity of the computation grows horribly quickly. Since you can't wait around for a trillion years (or worse), we can ...
The Zynq 7000 is a complex chip, but presumably you're part of a team that includes one or more hardware designers who are doing the PCB and FPGA fabric parts of the design.
For your purposes, you need a document that I usually call the "Hardware-Software Interface Specification". This document provides all of the details that the software developer needs ...
The answer from W5VO tends to focus on the back-end, and this is a major difference between ASIC and FPGA flows; but it misses out the digital design verification part.
When getting a design onto silicon can cost a million dollars and more, and you can pack many more usable gates on an ASIC compared to an FPGA, then you spend a lot more time away from the ...
The C18 compiler supports the number-to-ascii family of standard C functions in stdlib.h: itoa(), ltoa(), ultoa() et cetera.
Depending on which compiler / stdlib.h you have, the relevant function prototype would be:
extern char * itoa(char * buf, int val, int base); // signed int
extern char * utoa(char * buf, unsigned val, int base); // unsigned int
One way of doing this is to save, and then later restore the SREG status register, thus saving and later restoring the interrupt status to whatever it was, thus:
uint8_t oldSREG = SREG; // Save the status
// Do stuff, as little as possible.
SREG = oldSREG;
Also, the rationale described in the question has inherent problems: If some other ...