Home Blog Contact Image of Raspberry Pi single board computer top view
British flag SVG 4:3

English

French flag SVG 4:3

Français

About me

I like programming and electronics and making projects in my interests which are trains and energy. I'm always coding, and I've always got a few projects going at any one time! My particular interests are making things which are connected to the internet, showing real time information or being interactive.

Programming

For projects that involve electronics and running on Raspberry Pis or other microcontrollers, I usually write these in python since it's universally supported, especially by the Raspberry Pi Foundation. For projects that involve the web or brokers/servers I usually write these in Node.js since I prefer the syntax and is interpreted straight away.

Some of the projects I have worked on include:

  • A real time train display: It shows the location of all the trains on my local line represented by LEDs. The data is recieved from Network Rail for free, this is then parsed and used to drive i2c port expanders (MCP23017) to turn on and off each LED.
  • A live electricity generation meter: It shows the sources of energy produced for the National Grid at that moment in time, for example Gas, Wind and Nuclear. This also recieves free data from the National Grid and Elexon. I have also developed grid.pizone.dev, a website showcasing what the grid is up to. This website contains more detailed information than most currently available.
  • My blog website: A fine example of full stack development, allowing me to create, edit and moderate blog posts, with a preview generated as you type.
  • This website: Simple but functional website. The servers for my website run on Node.js. These are proxied through Cloudflare to ensure security and attack protection. Cloudflare also makes my site load faster through use of caching and content delivery networks.
  • My API: I wrote this to simplify digesting data from the National Grid and Elexon for my generation meter on the principle that a separate program could fetch and parse the data and then be able to return it in a format I could easily use for my projects. This simplifies code and makes code development much efficient.

Electronics

Many of my projects make use of general purpose input/output used by the Raspberry Pi. GPIO can be used to drive Displays using protocols like SPI and power LEDs and use buttons. I, however mainly use the GPIO for I2C which is a protocol that allows a "master" device to control multiple "slave" devices and read and write values to and from them. I have used temperature sensors, motor controllers, port expanders for more GPIO LED/Button capability.

I consider myself to have a novice level of designing electric circuits and understading electrical concepts and I'm able to solder my own components together.

I studied Computer Science, Physics and Product Design at A Level in the United Kingdom which I think are closely related to what I do.

I'm currently doing a degree apprenticeship in software.

Other Projects and interests

Urlcut.app

An easy to use, quick way to shorten any url on the internet. Features a high levels of customisation, link analytics and ability to create virtual profiles with all your important links. I mostly develop backend for this website which involves database reading and writing.

Travelling and trains

I frequently visit London with one of my friends whose aim it is to visit all railway stations there! I am interested in rolling stock and train types used throughout and keep up to date with railway news. I have also created train location displays as described earlier.

French

I often visit France and while I have achived a grade 7 in GCSE French (Equivalent to an A!) I regret not taking it for A-level so I am trying to maintain my knowledge using Memrise and Duolingo as well as considering written practice.

Github Activity

  • Commit with message: add search by services

    Cyclingbob/buses (9 months ago)

  • Commit with message: working on decoding timetables to be easier to understand

    Cyclingbob/buses (9 months ago)

  • Commit with message: adding searching for bus services

    Cyclingbob/buses (9 months ago)

  • Commit with message: decode more timetables to understand different terms

    Cyclingbob/buses (9 months ago)

  • Commit with message: update git ignore

    Cyclingbob/buses (9 months ago)

  • Commit with message: update download.js

    Cyclingbob/buses (10 months ago)

  • Commit with message: update timetables.md

    Cyclingbob/buses (10 months ago)

  • Commit with message: update readme.md

    Cyclingbob/buses (10 months ago)

  • Commit with message: update git ignore file

    Cyclingbob/buses (10 months ago)

  • Commit with message: move timetables around and document some of the download.js file

    Cyclingbob/buses (10 months ago)