Eddie Blog
Search Eddie Blog
Meet Eddie
Eddie is our concept for an embedded computer system that can be used to create and test small volume, high value technical products. These are typically found in scientific, industrial and some commercial settings.
Our background is in systems that use novel sensing techniques to analyse mined material in on-line processing settings. These systems require control and measurement computers and in some cases the processing power to compute results in real time. When developing such systems, we found that carrying the hardware and software used in initial laboratory settings through to systems with high technical readiness saved significant effort and cost.
There are microcontroller systems that many students and early career researchers and engineers are familiar with. These are often not robust enough to take from the initial prototype to final products. Much effort is usually needed to transform the basic parts into a robust product. There are robust industrial control systems (e.g. Programmable Logic Controllers) that have a high cost of entry and use programming techniques unfamiliar to these types of users.
Our idea is to provide a robust, modular system where the computer power, input and outputs and communications interfaces can be selected and scaled all the way through the process. The system should have a realistic cost of entry and the robustness to endure use in a final product.
Our Eddie blog will gradually take you through the process of developing the hardware.
Our Eddie wiki on github is where we are building the documentation for Eddie. This is our Eddie wiki: https://github.com/boredowl-public/Eddie-K451/wiki
Probing questions
In this post, we introduce EDDIE Probes. The concept of probes came about for a number of reasons:
We have a need for analog I/O quickly for an immediate application for EDDIE
Designing full analog cards is a relatively slower and more complex process than the simpler probe design we discuss here.
Bringing large quantities of wiring (especially arrays of sensors) into a centralised card box is cumbersome. Distributing the I/O at the point where it is required reduces the cabling.
Putting probes off of the backplane system un-burdens the backplane and makes slots available for higher power functionality.
Probes can and will be very diverse. We intend to have many variants and functions often mirroring higher density or higher performance full EDDIE cards. The probes we discuss here are to match our application. Even as this post gets published, there are plans for at least two more types.
Lets get serial.
In a previous post, I briefly discussed a small card with an RS-232 serial port on it. This card was used for interfacing a host computer to our EDDIE system when it was running K4. That idea has been expanded and turned into our first EDDIE peripheral card design.
At some point someone has to talk about software…
Our testing of EDDIE wouldn’t go ahead without a bit of backbone from some software.
As part of the products that Bored Owl is developing, we have an operating system core that uses our custom stack based (ie Forth like) language. This language is tuned to use 32 bit integers as its main data type and is suited to small ARM Cortex-M0 cores as well as the M4+ core in EDDIE. Originally the language was developed on a desktop computer and then ported to ESP32 systems. These ESP32 systems are on our “BOB-C” board which is used in our Kairos clock kits.
K4 Features
Stack based interpreter
32 bit integers are native for numbers and memory references
Functionality is provided by built-in and user defined “words”
Support for strings. Strings can be manipulated, edited and printed.
Similar set of built-in words as Forth-79 (https://en.wikipedia.org/wiki/Forth_(programming_language).
The dictionary can be loaded and saved from/to non-volatile storage (CPU Flash, QSPI Flash or SD Card)
A set of built-in system words complements the standard built in words. These words facilitate access to I/O drivers for the hardware resources available in the system.
Getting Technical and testing.
This month we will give some more details on the first system that is being built, a progress reports and some teaser details about our operating system that is being developed alongside the hardware.
In our last post we discussed the features, constraints and some decisions we had made toward designing the EDDIE system. Recalling that EDDIE is a system - made from numerous compatible and interchangeable components, we’ll present our starting system in some more detail this month.
The first EDDIE System!
To build a our first prototype in a card cage, we needed the backplane card and a power supply. The backplane was simple as it consists of connectors only.
The design of the Ethernet and power card was more elaborate. This card had to include:
A 15W 3.3V power supply for the bus
A five port Ethernet switch model (supplied by a third party). One port of this switch is used internally.
An SPI to Ethernet circuit. The SPI port comes from a special port that is built into CPU cards that support Ethernet capability
The first CPU card is much more of a technical challenge. The features of the card were desired to be:ARM Cortex-M4+ CPU. We nominated the Atmel ATSAMD51 device as it has sufficient I/O to support on-card requirements and the bus system.
EDDIE’s BUS
This is a quick and technical run-down of the bus architecture. It isn’t the final specification, but a background summary that affects the development of various components.
The initial development phase:
Where are we at with Project Eddie?
If you’ve been following our social media you’ll know we’ve received the bare CPU board and now its been loaded, so be sure to look through the photos later in the newsletter.
Getting on with it…
Where did the idea for Eddie come from?
Eddie was conceived from many different ideas over many years of experience.
What makes Eddie different from what is already available?
Eddie is modular. Card slots connected as a bus allow a combination of components. We envisage that these cards will include a range of processing options, I/O and communications ports. You can choose what cards are included and can expect the software and configuration to work together.