06/22/2019 at 12:59 •
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.
06/15/2019 at 08:42 •
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!
06/07/2019 at 13:34 •
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.
03/19/2019 at 13:14 •
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.
03/17/2019 at 19:28 •
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 email@example.com and you can subscribe by visiting https://mail.python.org/mailman3/lists/pewpew.python.org/.
03/06/2019 at 19:24 •
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.---------- more ----------
Two of the chips come in QFN packages, so they are a bit of a pain to solder by hand, but I managed to do it without problems this time — I guess I'm getting practice. But I wouldn't want to make much more of them, and I don't think it makes sense to mass-produce those. So it's mostly a one-off prototype thing.
03/03/2019 at 22:59 •
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!
03/01/2019 at 16:08 •
It's been quiet here for a while, but that is not because nothing was happening — on the contrary, it's because I have been busy with non-technical parts of this project. I spoke with several organizations and individuals who are interested in teaching using this device, and I had a talk at FOSDEM about it:
Right now I'm working on a secret project related to it — I will let you know as soon as I am allowed to.
In other news, I was putting off getting all the code cleaned up and organized, and finally yesterday evening I have bitten the bullet, so to speak, and upgraded the code to the current master of CircuitPython, and submitted a pull request upstream: https://github.com/adafruit/circuitpython/pull/1607 — hopefully it will get included in the 4.0 release that is coming soon.
I still plan to split the current repository into small individual subrepositories, so that it's easier to find the code you need, and easier to contribute.
10/21/2018 at 18:45 •
The small PewPew has been just approved on Tindie, so you can order it already. The package will arrive tomorrow, but the approval process takes some time, so I started earlier. I wouldn't be able to send it on a Sunday anyways.
If you need a larger quantity for a workshop, contact me directly, and we can arrange it.
The product on Tindie still has the photos of the prototype — the final version has a red PCB and green buttons. I will update the photos when the package arrives. The final price is also a little bit higher than I initially anticipated, due to the duty tax.
10/18/2018 at 15:59 •
The PCBs finally arrived from @Elecrow, so I assembled one to see how it works:
Generally I'm pretty happy with it, there are however two small things that I would correct in the next version:
- the direction buttons are too close to the matrix, and it's awkward to press the right button,
- the holes for the matrix are a bit too far apart, so you have to bend the matrix legs a bit to fit, but it also makes them fit tighter, so I'm not sure about this one.
Otherwise it looks and works great, and I think I'm going to put some of them for sale on Tindie. Here's how they look like under the hood (while being programmed):
And here's photo of the back. There is plenty of room for a conference logo and/or name — hint, hint!