GithubHelp home page GithubHelp logo

ah01 / box-of-life Goto Github PK

View Code? Open in Web Editor NEW
17.0 4.0 3.0 154 KB

Modification of Ikea FREKVENS with Raspberry Pi Pico to play Conway's Game of Life

License: MIT License

Python 100.00%
frekvens ikea ikeahack micropython rp2040 raspberry-pi-pico game-of-life

box-of-life's Introduction

Box full of Life

Modification of Ikea FREKVENS with Raspberry Pi Pico to play Conway's Game of Life.

Features

  • Start with random pattern and play game of life
  • If stable pattern or oscillator with period 2 occurs game will be restarted.
  • Control:
    • Red button
      • short press - turn ON and cycle LED brightness
      • long press - turn OFF
    • Yellow button
      • short press - cycle speed
      • long press - restart life

Firmware

FW is written in MicroPython. Use Thonny or mpremote to load content of src directory into Pico.

cd src
# copy everything (.) in to remote (:)
mpremote cp -r . :
# run main.py to see stdout
mpremote run main.py

Ikea FREKVENS HW Modification

One need to disassembly Ikea FREKVENS box, remove original MCU board and connect RPi Pico. Steps:

  1. Disassembly, there are some tutorials already, e.g. here or here
  2. Remove original MCU (green) PCB and solder connector in place (or directly connect according to the following table via wires).
  3. (optional) disassembly power supply block and replace AC output plug with 3D printed USB connector holder. USB data pins are available on back side of RPi Pico as test points.

Connection

Board Pin/Wire RPi Pico PIN Note
LED PCB 1 (Vcc) VSYS
LED PCB 2 GPIO 4 En
LED PCB 3 GPIO 3 Data
LED PCB 4 GPIO 2 Clk
LED PCB 5 GPIO 5 Latch
LED PCB 6 (Gnd) GND
Buttons Red wire GND
Buttons Black wire GPIO 10 Yellow button
Buttons White wire GPIO 11 Red button

Connection between power supply and main PCB (4V and GND) is same.

โ€ผ If USB connection is used, one must de-solder diode that are between VUSB and VSYS from Pico PCB. (here's why)

Ideas for improvements

  • Add predefined startup (e.g. glider)
  • Performance improvement (use SPI or PIO for communication, speed up game generation computation)

box-of-life's People

Contributors

ah01 avatar rlafuente avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

box-of-life's Issues

Diode de-soldering?

Hi, thank you for an amazing project! I was looking into ways to control the Frekvens and only knew about Frumperino's arduino efforts.

I'm about to hook this up according to your instructions, but wanted to doublecheck this detail:

If USB connection is used, one must de-solder diode that are between VUSB and VSYS from Pico PCB.

I searched online about this and all indications are that the diode is necessary to not fry the host USB machine. I'm very sure you know what you are doing, but ruining my laptop (and/or my Frekvens) is a tough prospect :-)

To be sure, is this the right one to take off?

image

And is there any security caution I should take with the Pico after removing the diode?

Thank you in advance!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.