Close
0%
0%

Skills set

A list of my skills

Similar projects worth following
131 views
0 followers
My employers are effectively a huge R&D department for hire. They want to see what skills employees have and are learning, so I've started listing mine here.

These pages contain no company confidential information, of course. There's nothing that isn't publicly placed on my CV.

  • LaTex

    Keith10/09/2023 at 01:02 0 comments

    Someone training as a data scientist asked me for help typesetting in LaTex. I had less experience of it than she did, but being familiar with hypertext mark-up allowed me to pick up LaTex pretty quickly.

    LaTex pre-dates modern mark-up languages so it isn't the most elegant language but it is the de-facto standard for typesetting mathematical and scientific papers. It can typeset extremely complex formulae, which HTML cannot do yet.

    Wikipedia has partly integrated LaTex. Formulae are typeset by LaTex and converted to images, which are then embedded in Wikipedia HTML pages.

  • HTML

    Keith10/08/2023 at 21:50 0 comments

    In 1986, I wrote documents in WordStar. I then moved up to a desktop publishing package. Then I moved up to Microsoft Word. Migrating documents was a chore, and Microsoft software seemed very flaky. Often it would crash, or get hopelessly confused about formatting. It was proprietary software so you could not read it unless you had bought Word. 

    The internet took off and I ported my documents to HTML. No need to pay Microsoft anything, and I could edit the code and see exactly what was going on (unlike Word).  It proved a good decision, because I've never had to port a document since.

    Cascading Style Sheets have been a boon. One file controls the style of all my work. I don't have to change all my documents. I can have an image appear in multiple documents without having a copy of it in each document, and I don't have Microsoft software deciding to compress lossless images into jpeg without my permission.

    I edit my HTML directly with a text editor. I know there are word processors that can edit HTML in a WYSIWYG manner, but they bloat the formatting so that a file can easily treble in size. So I don't use them.

  • Python

    Keith10/08/2023 at 21:22 0 comments

    There are many trendy languages (e.g. Ruby, Rust, Python) that some people tout as the next big thing but there are so many that I won't bother learning them. Unless there is a darn good reason.

    Python is the fastest growing language, according to Google's numbers of queries. That doesn't necessarily mean it is a great language. It might be just because it is being used as a teaching language and there are classrooms full of students desperately trying to grasp the basics.

    It is used a lot for small computing jobs. From what I can see, it is interpreted (slow) and not very environmentally friendly in terms of joules per computing done, but it does not get used for the heavy lifting of computing. It looks more like a scripting language for interfacing with libraries of code which do the heavy lifting. One guy I know said he was just a plumber these days, using python to get data moving between modules.

    Python is very good at handling strings, much better than C. For example, if you have a string in the form product_yyyy-mm-dd_notes there is a command to split a string into substrings with a given separator like "_". You can then split the second substring into yyyy and mm and dd with the separator "-". In C, one has to write more string handling code.

    One programmer said he used Python because it let him write programs faster. In a world where computer time is cheap and human programmer time is expensive, Python is more economical.

    Like human languages, many modern programming languages are similar enough that if you know the basics of one you can pick up others a lot faster than starting from scratch. If there's something you don't know how to do, but ought to be possible, google will find the answer quickly. 

    I haven't been asked to write anything from scratch yet, but I'm up to the level where I can modify or extend other people's programs. Which is what I get asked to do.

  • Learning Altium Designer

    Keith10/08/2023 at 02:24 0 comments

    Altium Designer is what my current employers use. It is a very powerful and expensive tool.

    One of my very clever colleagues said he would prefer it to be less clever and more reliable.

    However, we have to use what the company uses and I don't know of any reason to hate it. Yet.

    The first thing I asked was "Where is the standard library of ready-checked parts?". 

    The answer is that there isn't one. People have to make their own or download details from the manufacturers.

    The very nice side is that one can log into a secure network and use a software licence remotely, working from home.
    Their website says it is a cloud-based system, and you can work from anywhere. Which is exactly what you need if you are a company with people working around the world, or there is a global pandemic on and people have to work at home.

    I've had a go at using it, creating a small and simple board, just as an introduction.

    First step is that the owner of the project must share the project with you. And provide any parts you need to use.

    An interesting feature is that you can mark connections that are differential pairs, and that information is passed on to the PCB layout information. 

  • PADS schematic entry and component librarianship

    Keith10/08/2023 at 02:12 0 comments

    In my previous job, my employers used multiple CAD packages to enter schematics and layout PCBs.

    This meant they could not cut and paste circuits from one CAD format to another.
    And they had to pay multiple licences.

    They spent well over well over a year deciding what package to standardise on, before choosing PADS.

    The reason being that PADS was a mature PCB layout packages, and it was well-coupled to the schematic entry system.

    I disliked PADS at first, because it was not as simple as Orcad, but I realised that was because it was actually more powerful. A car is more complex than a bicycle. I was the company CAD librarian.

    The other thing I learnt was that every time I thought there must be an easy way to do something, there generally was. I soon got to be an expert in it and was able to design parts by editing their ASCII text files. I could even write C programs to auto-generate components, PCB decal and logic decals.

    Alas I was not able to borrow the PADS PCB layout licence dongles long enough to become an expert in that. The dongles were several thousand pounds each, so I could not borrow one to learn at home either.

    I'm now very familiar with PADS schematic entry and its ASCII text import/export files.

  • Orcad schematic entry

    Keith10/08/2023 at 01:50 0 comments

    I found this really easy to pick up way back in 1993. Everything was intuitive and followed the Windows look and feel guidelines. I designed professional products with it.

  • Atmel SAM ARM development IDE

    Keith10/08/2023 at 01:46 0 comments

    Another GUI-based IDE. Not hard to use. 

    It looks like the ARM is now what the 8051 was in the 1980s, the standard microcontroller unless you had a good reason to choose something else.

    And like most micros today, everything hidden behind a compiler.

    There a GUI that lets you select things like brownout voltage and so on. 

    I've used this tool to debug a product, load different versions of software, set security bits etc.

  • MSP430 development suite

    Keith10/08/2023 at 01:28 0 comments

    Ages ago I heard that the MSP430 devices were the most power frugal micros, and the clear choice for micropower applications.

    These days I hear that the Atmel SAM devices (based on ARM cores) have caught up and were the default micro for most projects. 

    Whatever the case, I did have to work on someone else's MSP430 code and mod it to do some experiments. The development software was not hard to pick up.

    From past experience, the microprocessor doesn't seem to be make much difference from a programmer's point of view when it is hidden behind a C compiler. What does take the learning time these days is the set of on-chip peripherals which seem to get larger and more complex over time.

    Well, it's another tool I've used and another tick in a box.

  • Altera Quartus

    Keith10/08/2023 at 00:23 0 comments

    In 2001 I chose to go with Xilinx chips and design tools, because they are based on the same ordinary silicon technology used to make RAM chips and microprocessors. Infinitely reprogrammable and presumably cheaper than non-volatile technology.

    I learnt the Xilinx tool set in 2001, reasoning that I was going to reprogram a development board many times and it would be better to have one that never wore out. 

    I noticed that most hobbyist designs, and professional products I was involved with, used non-volatile devices from companies like Altera. So I'd have to learn their development tools.

    Altera seemed popular so I installed their Quartus development suite. Being familiar with the Xilinx software, I quickly felt at home with Quartus. Most of the stages are same for any FPGA device: compilation, optimisation, and fitting.

    I set it to work compiling my Acorn Atom project. All went fine except for the Xilinx-specific memory blocks. It is possible to create memory blocks from the general-purpose cells but it isn't a very efficient use of resources. Which is why FPGA manufacturers provide ready-made memory blocks on their chips. They have manufacturer-specific ways of specifying them, so that will take a little extra work.  I am confident there are Altera equivalents.

    I feel I have learnt the Quartus tool environment.

    I bought the Altera DE Nano development board, carrying a Cyclone IV device up to 22,320 LE.

    Comparing this against the chip I used for the Acorn Atom project:

    Xilinx XC2S300E has 32 x 48 = 1,536 configurable logic elements, or 6,912 logic cells.

    Cyclone IV EP4CE22F17C6 device has 22,320 Logic Elements. and 594 kbit = 74.25 kbyte memory.

    Should be about  3.23 times more logic to play with.

    Tasks done:

    • Buy Altera Nano board
    • Install Quartus on Linux machine
    • Install Quartus on Windows machine
    • Compiled simple STEbus interface logic (<1% of LEs)

  • WinCUPL

    Keith10/07/2023 at 23:56 0 comments

    When I started working in 1986, companies usually stocked a wide range of 74LS logic chips. Programmable logic in the form of PAL chips had started to make life a lot easier by mopping up most of the small-scale logic. This reduced the amount of PCB space and made most hardware corrections a matter of reprogramming a PAL instead of redesigning or re-working boards.

    The downside was that PAL chips were not cheap, usually several times costlier than a TTL chip, and PAL programmers were very expensive. More than most hobbyists could afford. Manufacturers would not publish how to program them, because they didn't want people making poor-quality programmers making badly-programmed devices. That situation still stands today.

    Fast forward to 2023, most PAL chips have been replaced by GAL chips of type 16V8 and 22V10, and they are pretty cheap. People have worked out the Atmel programming procedures and so Atmel GALs are usually the first programmable logic devices that affordable device programmers can handle. This is certainly true of my Wellon device programmer.

    Programmable logic has also evolved into CPLD and FPGA devices, but 74 series logic are still made because they are still perfectly suited for simple jobs. In the same way that life has evolved into humans but bacteria still exist. Likewise GAL devices are still good for what they are best at. In fact, for 5V driven environments, they are your only programmable logic choice. Most CPLD and FPGA devices have moved into 3V3 and lower voltages.

    CUPL was a popular language for programming PAL and GAL chips. Atmel have made WinCUPL, a CUPL tool with a Windows interface, free. I hear it is a little buggy but it works fine from the command line.

    Alas it is Windows software, and I haven't managed to get it running under WINE yet. However, my device programming software only runs on Windows so I just do all my GAL programming work on an old i3 laptop I keep for running legacy  Windows software.  

    CUPL does have some more complex features for specifying stuff like state machines, but most of the situations I would use a GAL for don't need more than simple logic.

    So I feel I have learnt CUPL as far as I need to.

View all 11 project logs

Enjoy this project?

Share

Discussions

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates