Albert Gonzalez homepage

Hello! I’m Albert Gonzalez, a computer engineer from Barcelona. I drink coffee and code both for fun and for a living, so check some of the projects I've been involved with (mostly one-weekend hacks and stuff like that).

I studied at UPC - FIB (Polytechnic University of Catalonia - Barcelona School of Informatics) and I’m currently working at The Hotels Network.

Last update: 2022/01/30: Added Custom 3d printed sign with addressable leds and I2C libraries for attiny85-like AVR micros on the list of stuff I do.

Stuff I do

I usually do stuff. You can find here what I’m doing now (or what I did in the past) and where. There's no particular order, but usually the newest projects and/or updates are the first on the list.

I2C libraries for attiny85-like AVR micros

A pair of I2C libraries for AVR micros with USI two-wire mode capabilities (developed and tested on attiny85's, but portable - in theory! - to similar devices with the proper pin changes) + a bunch of examples both with primary and secondary devices.

The goal here is to use them as the main entry point when dealing with I2C in future projects (and improve them over time, of course!), so there's also a fully functional micro-example of a primary device reading from a secondary device and writing into a third secondary one.

There's more info about how the libraries work in the github readme file.

Custom 3d printed sign with addressable leds

I have a friend with a youtube channel that asked me to build him a custom glowing sign with his nickname on it (it's now on the background of his videos).

It seemed an interesting project (also I didn't worked with addressable leds until now) so following his instructions and some 3d printing, some wiring and some firmware-writting later I ended up with my first led sign!

(S)NES Mini Controller USB Adapter with an attiny85

An adapter to interface a (S)NES Mini Controller (an I2C device) with a PC as a generic USB Gamepad; based on an attiny85. The microcontroller uses the V-USB library to create a low-speed usb device and implements some homemade code in order to process the I2C signals from the controller.

I also tried to emulate an XInput controller (like the one in the XBox 360) with V-USB and wrote about that process here (it's not fully functional but I learned a few things about it while trying).

All of this started by trying to connect those controllers to a regular Arduino. I wrote about this here, with some examples, snippets and additional links.

I made some PCBs for the adapter! Check the post on the project page!

Game of Life on an attiny85

Conway's Game of Life running on an attiny85 with an SSD1306 driven OLED display.

The fun part was to manage the display (a 128x64 one) in a dynamic way by using the small amount of SRAM available. I ended up writting a custom SSD1306 driver for the micro, so it allows the user to create (and modify) a 32x16 grid that can be stored in the internal SRAM and then translated into "big pixels" in the real 128x64 OLED screen.

More info about this process on the project page.

10 Steps Sequencer

My first analog synth-in-a-box: a 4017 decade counter wired to an Atari Punk Console (a.k.a. a box that makes sounds with switches and knobs).

More info available on the project page.

The Weather

Made as a small weekend project with an ESP8266 Thing Dev Board from Sparkfun, The Weather is a box with a big red button that prompts The Weather (but not The Weather From A Specific Location).

Using the OpenWeather API and a custom homemade script, each time the user hits the button the weather information from a random place is displayed in a small OLED screen. Initially developed as a stupid Slack command for my offtopic chats, the next logical step was to prototype it into a small box (designed and 3d printed by myself) connected to the Internet.

Extended info available on the project page (also in the github repo).

Game Boy Raw Snake My first Game Boy mini game: a snake port written in assembly using RGBDS. There's an extended post on the github page with some techical information about what I did, how and why; aditional links for extra info and the rom.
Electronic dice (PCBs) I wanted to make one of those "design your own PCB" projects from scratch, since I've never done anything similar nor worked with the proper software, so I designed a couple of "electronic dice". Here are my designs, conclusions, things that worked and things that went wrong.
The Alarm Clock with a complete deactivation sequence based on probably too many movies

I built a digital alarm clock based on those two-key activation sequences that we can see often in movies (and in real life too, sometimes). So, in order to turn off the alarm you need to perform one of those actions and also input a code using a keypad. It's an Arduino-based clock with a custom 3D-printed enclosure that uses a bunch of elements, from key-switches to a Real Time Clock module.

I wrote a post about how I made it here.

The Key (the copy-paste keyboard from Stack Overflow April Fool 2021) On 2021 Stack Overflow posted a new "fake product" for the April Fool day: The Key; it was a small keyboard with only three keys: a Stack Overflow logo, Copy and Paste. I decided to build a protoboard version (but fully functional) of this amazing-but-not-real device. A keyboard made with an attiny85 and the V-USB libraries.
An Atari Punk Console built inside an old alarm proximity sensor case I built a small synth circuit known as Atari Punk Console to learn more about synthesizers and sound generation stuff. Full schematics, components list and more info on the project page.
Keyboard inside a mouse A small keyboard made with an attiny85 and the V-USB libraries built inside an old mouse case. It allows the user to select different keys using only the three original buttons from the mouse. Full schematics, components list and more info on the project page. This was made as a proof of concept/practice related to the USB protocol and the V-USB libraries (and also because it seems cool to fit a -more or less- full keyboard inside of a mouse!).

Other things


I like to poke around with things like the Pico-8 "fantasy console" (a virtual system created to develop games with a high retro style based both on the visual and the tech specs. On this system you write stuff in some Lua-variant implemented by the creator) or use tools like Game Maker (a 2D videogame-making tool). Here are some of my projects: