Close
0%
0%

PewPew Standalone

A Python-based micro game console, optimized for game development workshops.

Similar projects worth following

A Python-based micro game console, optimized for game development workshops.

I really like the #PewPew FeatherWing as a platform for teaching game development, but the cost of Feather boards needed to use it makes it difficult to organize workshops for larger groups of people. I have previously tried to work around that problem by merging the FeatherWing with the schematic stolen from a Trinket M0 (with an additional flash memory), but the resulting design was complex, difficult to make and still a bit expensive. Now after having designed a few more CircuitPython boards I think I can really cut the costs and make a standalone device with all the functionality of the original shield, but optimized for workshops.

gerber.zip

PewPew Standalone 10.2 gerber files

Zip Archive - 181.08 kB - 09/18/2018 at 12:08

Download

  • Noc Informatyka

    de∫hipu09/27/2019 at 12:26 1 comment

    This is another secret project that I can now write about. At the EuroPython I have been approached by the organizers of a Polish event Noc Informatyka (https://nocinformatyka.pl) and asked to prepare badges for the event. I agreed, and we produced 150 custom units.

    Electrically it's identical to the PewPew Standalone, including the voltage regulator that is optional for Standalone, but included by default here. Mechanically, I used the same large LED matrix as in the EuroPython PewPews, but this time with a vertical arrangement of the device and with quiet silicone buttons, same as used in #µGame. The connector header has been moved to the bottom, to make room for the lanyard hanger, and there is a place for writing the participant's name. The battery holder for two AAA batteries is on the back, which is otherwise empty.

    The units were produced and tested by @Makerfabs, and it all went very smooth.

    I can't wait to see what the participants of the event will do with them!

  • Workshops in Zürich

    de∫hipu08/25/2019 at 17:18 1 comment

    The weekend of August 31st and September 1st, @Christian Walther and me are going to run workshops on game programming with CircuitPython using the PewPews.

    You will have a unique opportunity of becoming a full-stack game developer: starting with assembling and soldering your game console, through a simple bouncing ball tutorial, to a full-fledged game for a PewPew, all in just 2-4 hours!

  • New Source

    de∫hipu08/09/2019 at 09:41 1 comment

    You can now buy PewPew Standalone directly from Makerfabs, instead of Tindie. What does it mean for you? Well, for one it is cheaper, because there are no additional payments and handling along the way. The shipping is about the same, but you get registered mail for that price, so it's actually cheaper too. Oh, and it comes already fully assembled, and in any color you like, as long as it's black.

    Personally I am very excited about this, because in practical terms in means that more people can get their hands on it, and that I'm free to focus on the support, documentation, more games and the next version.

    Big thanks to @Makerfabs — they helped me with all of my bigger projects, and they have always been very reliable.

  • Hardware Design for EuroPython Version

    de∫hipu06/22/2019 at 12:59 0 comments

    The conference is coming fast, and it's not a secret anymore, so I took the liberty of publishing all my design files for that version of PewPew at https://github.com/pewpew-game/hardware-europython2019

    Electrically it's identical to the 10.3 verson of PewPew Standalone. Mechanically it's similar to the 10.4, except for the smaller switch moved to the upper edge, and USB port moved to the upper edge as well. Well, and the LED and button colors, of course.

  • EuroPython 2019

    de∫hipu06/15/2019 at 08:42 1 comment

    The cat is out of the bag, so I can finally write about this.

    Six months ago I had a presentation in Brussels at FOSDEM about developing your own game consoles. Of course PewPew was one of the prominent examples. After the talk (which I completely butchered due too bad timing), we talked with Marc-Andre, one of the people who make EuroPython possible year after year, about the possibility of running a workshop on PewPew programming at the EuroPython conference. I don't remember much from that conversation, because I was stressed after the talk, but he followed up on that after talking with the other organizers, and finally a decision has been made to give PewPews to all participants.

    I contacted @Makerfabs about producing them, and we got an initial quote. Since we were going to be producing 1400 units, this was an opportunity to use a custom PCB soldermask color, and I couldn't miss that opportunity. I received samples of the branding materials, and I sat down to redesign the 10.3 version (the large one) to make it better suited for wearing at the conference, and to add branding to it. The conference colors are orange and blue, so I switched to blue display and buttons, and used orange soldermask. I moved the USB port around, replaced the switch with a smaller, SMD version, and made sure there is almost nothing on the back side, where the logos go.

    Later on we also added a hanger at the top of the PCB — breakable, so that you can have easier access to the pin connector. We had some back-and-forth negotiating the best payment method, shipping, packaging, etc., but in the end we came to an agreement, and placed the order. The boards are being produced and tested even as we speak, and the above photo is from a first unit they assembled and programmed. All in all, it's an interesting adventure.

    The conference is in three weeks, and we will be running workshops on programming those devices — even though they come by default programmed with a couple of games. If you are coming to EuroPython, please consider staying and lending a hand running those workshops — it's a great opportunity to talk with other participants and show off your experience!

  • Laser-cut Backs

    de∫hipu06/07/2019 at 13:34 0 comments

    I was making an order at @Elecrow again, so I added the order for the laser-cut backs for PewPew again — this time with the size specified, so that there will be no confusion. Today they arrived:

    They work pretty well, even though the battery still sticks some millimeter or two. It was the thickest acrylic available, at 10mm. I could probably stick something rubbery or wooden in there, to get that last millimeter and to make it nicer to hold. Or actually cut them from 12mm wood or cork — that would work very well too! A view from the bottom:

    In any case, I'm adding the PDF file to the files section for download, and I will add an option for this to the Tindie store.

  • Laser Cutting is Tricky

    de∫hipu03/19/2019 at 13:14 6 comments

    The laser-cut acrylic pieces that I planned to attach on the back of the small PewPew Standalone boards just arrived, and I have to say I didn't anticipate how they came out:

    Well, at least the shape is correct... but I didn't think the scale will be wrong. Especially since I actually printed the PDF and made a wooden model based on that, to make sure everything is good. Oh well, I guess that's it for ordering laser-cutting from China. I will have to do it myself.

  • Mailing List

    de∫hipu03/17/2019 at 19:28 0 comments

    As the number of users grows, it would be nice to have one central place for asking questions and general discussion. The CircuitPython discord channel is one such place, but it's not dedicated, and many people don't want to use Discord, so there is now a mailing list. The address is pewpew@python.org and you can subscribe by visiting https://mail.python.org/mailman3/lists/pewpew.python.org/.

  • PewPew Pro

    de∫hipu03/06/2019 at 19:24 1 comment

    I had a friend visiting a while ago, and I showed him my PewPews. He liked them, but remarked that he wouldn't mind a more feature-full version (the bi-color display, more shades, more memory) even if it meant the price would be higher. So I went ahead and designed such a version:

    It's really just re-hashing of the version 5.x of PewPew, but in the horizontal form factor pin-compatible with the version 10 of PewPew. Under the display there is the SAMD21 microcontroller, a 2MB flash memory chip (for the filesystem), and an IS31FL3733 LED driver chip.

    Read more »

  • Gamepad

    de∫hipu03/03/2019 at 22:59 0 comments

    Since the new firmware is considerably smaller, it has more modules enabled by default. One of those is the usb_hid module, which lets PewPew act as a Human Interface Device over USB. That means we can pretend to be a keyboard, a mouse or a gamepad. To test this, I wrote a simple program that turns PewPew into a gamepad:

    import board
    import struct
    import usb_hid
    import pew
    
    
    pew.init()
    screen = pew.Pix()
    for gamepad in usb_hid.devices:
        if gamepad.usage_page == 0x01 and gamepad.usage == 0x05:
            break
    else:
        raise RuntimeError("Gamepad HID device not found")
    report = bytearray(6)
    
    while True:
        buttons = pew.keys()
        report_buttons = 0
    
        if buttons & pew.K_O:
            screen.pixel(6, 3, 3)
            report_buttons |= 0x01
        else:
            screen.pixel(6, 3, 1)
    
        if buttons & pew.K_X:
            screen.pixel(6, 5, 3)
            report_buttons |= 0x02
        else:
            screen.pixel(6, 5, 1)
    
        if buttons & pew.K_UP:
            y = -127
            screen.pixel(2, 3, 3)
            screen.pixel(2, 5, 1)
        elif buttons & pew.K_DOWN:
            y = 127
            screen.pixel(2, 3, 1)
            screen.pixel(2, 5, 3)
        else:
            y = 0
            screen.pixel(2, 3, 1)
            screen.pixel(2, 5, 1)
    
        if buttons & pew.K_LEFT:
            x = -127
            screen.pixel(1, 4, 3)
            screen.pixel(3, 4, 1)
        elif buttons & pew.K_RIGHT:
            x = 127
            screen.pixel(1, 4, 1)
            screen.pixel(3, 4, 3)
        else:
            x = 0
            screen.pixel(1, 4, 1)
            screen.pixel(3, 4, 1)
    
        struct.pack_into('<Hbbbb', report, 0, report_buttons, x, y, 0, 0)
        gamepad.send_report(report)
        pew.show(screen)
        pew.tick(1/12)

    That's it. And it seems to be working! 

View all 36 project logs

Enjoy this project?

Share

Discussions

titimoby wrote 09/11/2018 at 16:30 point

there's room for everyone and I'm still volunteering to translate material for micro:bit;

but I'm looking to have various pieces of hardware that I can show and use with kids.
even with your margin, it is still affordable for small organization with small sponsors.

  Are you sure? yes | no

titimoby wrote 09/11/2018 at 15:32 point

you really target under 10$ ? That means something comparable in the end to the cost of a micro:bit.

it could complete the hardware in my little kid's workshop organization.

  Are you sure? yes | no

de∫hipu wrote 09/11/2018 at 16:09 point

Well, that's the goal. Micro:bit is a great feat of organization and pushing through politics, and a lot of really good work by volunteers, but I feel like the device itself is a bit sub-optimal. By now I know that I can get it below $10, and I could probably go below $5 at scale.

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

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