HackerBox 0041: CircuitPython

Greetings to HackerBox Hackers around the world. HackerBox 0041 brings us CircuitPython, MakeCode Arcade, the Atari Punk Console, and much more. This Instructable contains information for getting started with HackerBox 0041, which can be purchased here while supplies last. If you would like to receive a HackerBox like this right in your mailbox each month, please subscribe at HackerBoxes.com and join the revolution!

Topics and Learning Objectives for HackerBox 0041:

  • Exploring the SAMD51 ARM Cortex M4
  • Embedded programming with CircuitPython
  • Retro game design for MakeCode Arcade
  • Assembling the Atari Punk Console Synth

HackerBoxes is the monthly subscription box service for DIY electronics and computer technology. We are hobbyists, makers, and experimenters. We are the dreamers of dreams.

HACK THE PLANET

Step 1: Content List for HackerBox 0041

  • Adafruit ItsyBitsy M4 Express
  • Exclusive MakeCode Arcade PCB
  • Exclusive Atari Punk Console PCB
  • Two Electronic Component Packs
  • Color Display 128x160 Pixel TFT
  • CR2032 Coin Cell Five Pack
  • RGB 12 LED Ring Module
  • SG90 Micro Servo Motor
  • 400 Point Clear Breadboard
  • DuPont Jumper Wires Male-Male
  • Braided MicroUSB Cable
  • Exclusive Circuit Python Decal
  • Exclusive HackerBox Maker Decal
  • Exclusive HackerBox Iron-On Patch

Some other things that will be helpful:

  • Soldering iron, solder, and basic soldering tools
  • Computer for running software tools

Most importantly, you will need a sense of adventure, hacker spirit, patience, and curiosity. Building and experimenting with electronics, while very rewarding, can be tricky, challenging, and even frustrating at times. The goal is progress, not perfection. When you persist and enjoy the adventure, a great deal of satisfaction can be derived from this hobby. Take each step slowly, mind the details, and don't be afraid to ask for help.

There is a wealth of information for current and prospective members in the HackerBoxes FAQ. Almost all of the non-technical support emails that we receive are already answered there, so we really appreciate your taking a few minutes to read the FAQ.

Step 2: Electronic Component Packs

Familiarize yourself with the components shown here. Note the suggested allocation of these components according to the color coded blocks.

HackerBox 0041 includes these components packed in two resealable poly bags. Please note the components are only separated into two bags for ease of packaging and there is no meaning to the placement of the components into one or the other of the two bags.

Step 3: Adafruit ItsyBitsy M4 Express

The Adafruit ItsyBitsy M4 Express features the Microchip ATSAMD51 ARM Cortex M4 (datasheet) processor running at 120 MHz. The microcontroller has floating point support, 512KB Flash, and 192KB RAM.

While the ItsyBitsy M4 can be used with the Arduino IDE, it ships with CircuitPython on board. When you plug it in, it will show up as a small disk drive with main.py on it. Edit main.py with your favorite text editor to build your project using Python, the most popular programming language. No installs, IDE or compiler needed, so you can use it on any computer, even ChromeBooks or computers you can't install software on.

Step 4: CircuitPython

CircuitPython is a programming language designed to simplify experimenting and learning to program on low-cost microcontroller boards. CircuitPython is an open source derivative of the MicroPython programming language. It is a software implementation of the Python 3 programming language and has been ported to run on several modern microcontrollers. (see Wikipedia)

The Adafruit Welcome to CircuitPython page is the best starting point.

The solderless breadboard, jumper wires, and various other items from HackerBox 0041 are useful while working through to the Adafruit CircuitPython Essentials demo experiments.

Step 5: MakeCode Arcade

MakeCode Arcade is a web-based, beginner-friendly platform for creating retro arcade games for the web and for microcontrollers. Using the exclusive HackerBox MakeCode Arcade PCB, the Adafruit ItsyBitsy M4 Express, a color TFT display, and seven pushbuttons, you can assemble your own handheld MakeCode Arcade platform.

ASSEMBLY NOTES: Start with the PCB side including the text "ItsyBitsy" in the silkscreen facing up. All of the components go on this side of the PCB. There is a piezo buzzer in the PCB design wired to the ItsyBitsy. However, support for that output doesn't appear to be implemented in the Arcade code yet, so soldering the buzzer on is optional at this time. The 40pin female header can be broken down into two 14 pin sections to create a "socket" for the ItsyBitsy. Socketing the ItsyBitsy supports popping the module on and off of the Arcade PCB and the solderless breadboard as necessary for various projects. Of course, if you end up using both platforms for the ItsyBitsy with much frequency, you might want to pick up another ItsyBitsy and solder it directly to the Arcade PCB.

PROGRAMMING: See the details on MakeCode Arcade for the SAMD51.

Step 6: Battery Power for the MakeCode Arcade PCB

By default, the MakeCode Arcade PCB is powered through the microUSB port on the ItsyBitsy. USB power can be provided by a computer USB port, a wall wart, etc.

For a portable Arcade platform, the USB port can be powered using a USB power bank. Optionally, a clean solution for integrating LiPo battery power is the Adafruit LiIon/LiPoly Backpack shown in the photo. This backpack can be combined with a LiPo Battery and optionally an on/off button. Note from the photo that the LiPo Backpack can be neatly positioned on the backside of the arcade PCB. It helps to leave the relevant three pins of the ItsyBitsy if you plan to trim the other pins off after soldering.

Step 7: Atari Punk Console Badge

The Atari Punk Console is a popular circuit that utilizes two 555 timer ICs or a single 556 dual timer IC. The original circuit was published in a Radio Shack booklet in 1980. Its designer, Forrest M. Mims III, called the circuit a "Stepped Tone Generator" in his booklet "Engineer's Mini-Notebook - 555 Circuits".

The circuit is often called the "Atari Punk Console" because its "low-fi" sounds resemble classic Atari console games from the 1980s, with a square wave output similar to the Atari 2600. Technically it is an astable square wave oscillator driving a monostable oscillator that creates a single (square) pulse.

ASSEMBLY NOTES:

  • Two coin cell clips go on the back of the board
  • All other components go on the front of the board
  • Tin all three pads for each clip to ensure good contact with the coin cell
  • A 1K resistor R2 is located just below the IC
  • The DIP switches control power to the oscillators and the LEDs separately
  • C1 and C2 are 0.1uF Caps
  • C3 is a 10uF Cap
  • For all three caps, mind the polarity marking on the board by placing the longer pin towards the + mark
  • For the clear, self-flashing LEDs the shorter pin goes in the hole near the flat edge of the board circle
  • There is a + mark on the PCB for the speaker
  • The IC (and its socket) should be oriented according to the half-circle marking on the board
  • Solder the IC socket without the chip in and then put the IC in the socket once cool
  • The 1Mohm potentiometers are marked "B105" on the bottom and the 5Kohm is marked "B502"

Wikipedia Atari Punk Console Page

Jameco Electronics Atari Punk Console Page

Step 8: Livin' the HackLife

We hope you have enjoyed this month's voyage into DIY electronics. Reach out and share your success in the comments below or on the HackerBoxes Facebook Group. Certainly let us know if you have any questions or need some help with anything.

Join the revolution. Live the HackLife. You can get a cool box of hackable electronics and computer tech projects delivered right to your mailbox each month. Just surf over to HackerBoxes.com and subscribe to the monthly HackerBox service.

4 People Made This Project!

Recommendations

  • Tape Contest

    Tape Contest
  • Trash to Treasure

    Trash to Treasure
  • Arduino Contest 2019

    Arduino Contest 2019

29 Discussions

0
None
Ciph3r

Question 3 days ago

Ok, I have built both of the devices that came with the box. On the Atari Punk Console, I got the lights to flash and that is about it. I did not get any sound. On the Itsy Bitsy, I have connected it to my computer and I do not get the drive to populate on the screen. I put everything together as instructed. Any help with this??

0
None
evg2000

12 days ago

Built the Atari Punk Console, the volume is very low and doesn’t seem to make a whole lot of sounds. Anyone else have better luck, any videos of it working?
Also, not thrilled by the color coded key for the parts. Doesn’t work well if you are colorblind.

2 replies
0
None
kiltedkenevg2000

Reply 5 days ago

I had that issue. I realized I forgot to solder the resister. Don't forget the resister.

0
None
zal42evg2000

Reply 6 days ago

I had the same problem, and found that if I jiggled the pots up and down, I could get reasonable volume and response out of it.

I haven't revisited it yet, but I'm guessing that I didn't solder those pots on well. Given the nature of of the circuit, it's going to be more sensitive to poor solder joints than most. I'll reflow those joints to be sure. If that doesn't resolve the issue once and for all, I'll try replacing the pots with others, in case they're bad.

2
None
dragondad22

11 days ago

I'm getting a white screen when I fire up the arcade. I've checked my connections and have the bootloader and everything so I decided to breadboard the itsy bitsy and TFT. It still comes up with a white screen. Here's how it's wired, can someone confirm the connection are correct? Otherwise I'll just order another TFT.

TFT to Itsy Bitsy.png
8 replies
1
None
seaprimatedragondad22

Reply 10 days ago

I got a white screen too. Then I connected the usb to my computer, copied the appropriate bootloader file into the device, double clicked the restart button, and whammo, it worked.

0
None
zal42seaprimate

Reply 6 days ago

Really interesting. I'm having this same problem. Hopefully the same solution will work for me!

0
None
ChadC92seaprimate

Reply 10 days ago

where did you download the file you needed to get the image on the screen. All im getting is a white screen. I put the M4 in to bootloader mode and downloaded the ( adafruit-circuitpython-itsybitsy_m4_express-3.1.2.uf2 ) and copied it to the ITSYM4Boot drive. Is there any help you can give to get me on my way thanks.

0
None
The.newgnuChadC92

Reply 10 days ago

The circuitpython firmware won't display anything to the screen on it's own. you'd have to find or write some python code to drive it, or you could use the MakeCodeArcade bootloader from step 5.

The bottom of step 5 has a link to their docs, page 2 - 'Bootloader' has the .uf2 file you want (the itsybitsy one, not the feather one). Double-click reset on the board to put it into a different programming mode (it'll show up as 'ITSYM4BOOT' instead of 'CIRCUITPY'), then copy that .uf2 file over to the removable disk. It'll reboot itself when that's done, and you should see an image on the screen.

If you want to go back to circuitpyhthon afterward, you can do basically the same thing, but with the .uf2 file from 'Welcome to Circuitpython' link in step 4 (page 5 - 'Installing Circuitpython') except that double-clicking reset will take you back to the MakeCodeArcade bootloader from now on, and either the circuitpython uf2 or the game ones from MakeCodeArcade will work.

Here's more on the uf2 bootloader (and the origninal if you _really_ want to go back to factory - or at least how mine shipped) https://learn.adafruit.com/adafruit-metro-m0-express-designed-for-circuitpython/uf2-bootloader-details

0
None
justinmaranodragondad22

Reply 9 days ago

Dragon I tried your breadboard layout and was able to finally see bootloader screen and load a game. I tried putting it on the supplied blue board, but just get white screen. Soldered the 16 pin male connectors to the itsybitsy after removing 2 on both sides. Not sure how the female 40 pins are supposed to be used for this.

0
None
RichW36dragondad22

Reply 10 days ago

I am on the same point. Just have a white screen. I am going to clean the flux from soldering , but I dont think this is the problem . Should have at least got a boot screen. I am also wondering why there is 2 sets of holes for the header?

0
None

Me too. I wired up a similar display I had laying around and that worked as expected (mirror image, small picture, all wrong but at least it was the D51 image and not white, lol). A new display arrives tomorrow from Amazon so we'll see what's what.

0
None
Racer1TNjabutleratmacdotcom

Reply 10 days ago

I'm getting a white screen too and the soldering is good, double checked it. Dragging a file to the boot drive after a while of calculating indicates the file is too large for the drive. The atari circuit was an easy one, I've got several of those old books and cookbooks.
*I can copy .py files to the M4 and it works, that tells me its a coding problem. the UF2 file will not execute nor copy for me.

0
None
HunnyDob

12 days ago

Be careful with the male pin headers supplied with the ItsyBitsy. They are long enough that the tips can(will!) poke through the female header pins and can get soldered in place.

I first soldered the male header pins to the ItsyBitsy by putting them in the ItsyBitsy and placing the long pins in the PCB to hold everything in place and aligned while I soldered the short ends on the ItsyBitsy. I pulled that out, trimmed the female headers to 14 pins long and put them in the PCB but they were a bit wobbly so I inserted the ItsyBitsy to hold everything nice and aligned. The pins on the female header are just flat strips and don't fill the hole in the PCB. Even though I lightly applied the solder, just wetting it enough to fill the hole flush with the board surface, enough wicked down to contact the tips of the male pins on the ItsyBitsy. I didn't know this until I was done and tried to remove the ItsyBitsy and it would not come off. Unfortunately, when I put it together I wasn't worried about orientation, it was there just to hold things in place for soldering so Murphy's Law struck and the ItsyBitsy was in backwards so I couldn't leave it. I tried desoldering it with a solder sucker but no joy. Ended up using a heat gun in High to melt all the solder at once and prying with an orangewood stick to get it off.

ItsyBitsyPins.jpg
0
None
Detillio

12 days ago

Anyone else have this problem? Bad component? I've checked my soldering 3 times and it's not a bad connection there.

20190407_120046.jpg
0
None
velocityboyTimGTech

Reply 13 days ago

I have that book somewhere too! My dad's an EE and we did a lot of small projects when I was a kid, he taught me about the 555 :)

0
None
NewGnu

Question 13 days ago

Any insight into why the pins for the arcade board are they way they are? The schematic (and my multimeter) say the spi pins SCK and MOSI are connected to the screen's i2c SCL and SDA respectively. MISO is where I would expect it to be, but I'm not even sure if that's really being used.

I'm sure it's fine since the MakeCodeArcade bootloader fires right up and displays to the screen like it's supposed to, and their docs suggest that it's using SPI and not I2C. I'm just curious if there was a particular reason.

0
None
mrGman123

14 days ago

Without the second battery holder for the Atari Punk Console I had to go into true hacker mode. This little circuit took me right back to the late 80's. Loving the circuit python HackeBox.

1.jpg2.jpg3.jpg
0
None
mrGman123

Question 14 days ago

Was excited to received my HackerBox today. Wanted to put the Atari Punk Console Badge together tonight but it looks like I'm missing a battery holder. The parts list shows a quantity of two and sure enough there are two locations on the board. I'm guessing I will have to contact support somehow. Off to a rough start but not giving up yet. Hoping the other project goes well. :)

Capture.PNG