The CLUE Tracker Points You To A Target, Using CircuitPython

The main components are an Adafruit CLUE, Stemma GPS, and a lithium-polymer battery. No soldering required.

[Jay Doscher] shares a quick GPS project he designed and completed over a weekend. The device is called the CLUE Tracker and has simple goals: it shows a user their current location, but also provides a compass heading and distance to a target point. The idea is a little like geocaching, in that a user is pointed to a destination but must find their own way there. There’s a 3D printed enclosure, and as a bonus, there is no soldering required.

The CLUE Tracker uses the Adafruit CLUE board (which is the same size as the BBC micro:bit) and Stemma GPS sensor, with the only other active component being a lithium polymer battery. The software side of the CLUE Tracker uses CircuitPython, and [Jay] has the code and enclosure design available on GitHub.

[Jay] did a nice job of commenting and documenting the code, so this could make a great introductory CircuitPython project. No soldering is required, which makes it a little easier to re-use the parts in other projects later. This helps to offset costs for hackers on a budget.

The fact that a device like this can be an afternoon or weekend project is a testament to the fact that times have never been better for hobbyists when it comes to hardware. CircuitPython is also a fast-growing tool, and projects like this can help make it easy and fun to get started.

Scott Shawcroft Is Programming Game Boys With CircuitPython

Some people like to do things the hard way. Maybe they drive a manual transmission, or they bust out the wire wrap tool instead of a soldering iron, or they code in assembly to stay close to the machine. Doing things the hard way certainly has its merits, and we are not here to argue about that. Scott Shawcroft — project lead for CircuitPython — on the other hand, makes a great case for doing things the easy way in his talk at the 2019 Hackaday Superconference.

In fact, he proved how easy it is right off the bat. There he stood at the podium, presenting in front of a room full of people, poised at an unfamiliar laptop with only the stock text editor. Yet with a single keystroke and a file save operation, Scott was able make the LEDs on his Adafruit Edge Badge — one of the other pieces of hackable hardware in the Supercon swag bag — go from off to battery-draining bright.

Code + Community

As Scott explains, CircuitPython prides itself on being equal parts code and community. In other words, it’s friendly and inviting all the way around. Developing in CircuitPython is easy because the entire environment — the code, toolchain, and the devices — are all extremely portable. Interacting with sensors and other doodads is easy because of the import and library mechanics Python is known for, both of which are growing within the CircuitPython ecosystem all the time.

CircuitPython is so friendly that it can even talk to old hardware relatively easily without devolving into a generational battle. To demonstrate this point, Scott whipped out an original Nintendo Game Boy and a custom cartridge, which he can use to play fun sounds via the Game Boy’s CPU.

Now You’re Playing With Python

It’s interesting to see the platforms on which Scott has used the power of CircuitPython. The Game Boy brings the hardware for sound and pixel generation along with some logic, but he says it’s the code on the cartridge that does the interesting stuff.

The CPU communicates with carts at a rate of 1MHz. As long as you can keep this rate up and the CPU understands your instructions, you can get it to do anything you want.

Scott’s custom cart has a 120MHz SAMD51. He spends a second explaining how he gets from Python libraries down to the wire that goes to the Game Boy’s brain — basically, the C code underneath CircuitPython accesses direct structs defined within the SAMD to do Direct Memory Access (DMA), which allows for jitter-free communication at 1MHz.

He’s using the chip’s lookup tables to generate a 1MHz signal out of clock, read, and A15 in order to send music-playing instructions to the sound register of the Game Boy’s CPU. It sounds like a lot of work, but CircuitPython helps to smooth over the dirty details, leaving behind a simpler interface.

If you want easy access to hardware no matter how new or nostalgic, the message is clear: snake your way in there with CircuitPython.

Continue reading “Scott Shawcroft Is Programming Game Boys With CircuitPython”

CircuitPython Slithers Into 100th Board — The OHS 2020 Badge

CircuitPython reached a major milestone last week as it welcomed its 100th board into the fold: the wristwatch form factored badge designed for the 10th annual Open Source Hardware Summit, which takes place March 13th in New York City. Although CircuitPython — an open source derivative of MicroPython — was born at Adafruit, more than half of the boards on this list were produced outside of the company. That just goes to show the strength of the community in support of the snake.

The OSHW 2020 badge joins a litany of familiar boards happy to drop you into a Python interpreter. Among them there’s the Adafruit Feather ecosystem, the ItsyBitsy, specialized boards like the Edge Badge that was in some goodie bags at Supercon, and the CircuitPlayground — that Swiss army knife of sensors which now comes in a Bluetooth version. The first 100 boards were rounded out in strong fashion with [Joey Castillo]’s OpenBook e-reader and the Teensy 4.0. Continue reading “CircuitPython Slithers Into 100th Board — The OHS 2020 Badge”

CircuitPython Now Working On Teensy 4.0

Python is often touted as a great language for beginner coders to learn. Until recently, however, it simply wasn’t a viable choice in the embedded space. That’s begun to change with projects like CircuitPython, and now it’s available on the Teensy 4.0!

This milestone is thanks in part to [arturo182], who did the ground work of getting CircuitPython to run on the iMX RT series of microcontrollers. This was built upon by [tannewt], who is the lead in charge of the CircuitPython project.

There are some bugs to work out; currently, the project is in a very early stage of development. [Paul Stoffregen], who heads Teensy development, has already pointed out that there needs to be allowance for the 4096 byte recovery partition in the Teensy 4.0’s storage, for example. Development continues at a rapid pace, and those with ideas about where the project should go can weigh in online.

It’s an exciting development, which brings easy Python development to one of the more powerful embedded development platforms on the market. We look forward to seeing many more projects take advantage of the power of the Teensy 4.0 moving forward. If you’re eager to see what can be done with CircuitPython, be sure to check out projects we’ve featured before. Video after the break.

Continue reading “CircuitPython Now Working On Teensy 4.0”

DIY CircuitPython Brain Snakes Into Small Spaces

Whether you’re new to electronics and programming, or you were bit-banging bare metal long before hair metal, CircuitPython is a great tool for getting a project up and working without all the fuss. The boards show up as mass storage devices, and programming consists of editing the Python file and saving it back to the board.

The only hard part about CircuitPython is trying to cram those official boards into small projects. [Kevin Neubauer] got tired of making his own board every time and came up with a slim system-on-module that has all the core functionality of CircuitPython. CircuitBrains Deluxe has regular holes for using headers, but also has castellated pads so he can solder these modules directly to a larger project PCB. [Kevin] says these are still in the testing and cost-optimization phase, but we would totally buy a few of them.

[Kevin] probably has a programming method for this module in mind already. But if you find yourself mystified by castellated pads, take a look at this pogo pin programmer built for ESP8266s. If your problem is pitch-related, maybe you can save the day with a breakout board.

Thanks to [Drew Fustini] for the tip!

CircuitPython Sculpture Clock Adds Character To Any Desk

We can probably all relate to the origin story of this one. [Alex] was working on a bigger, more involved clock project when this cute little desk clock idea caught his mind’s eye. Who wouldn’t want a clock with character and a little bit of an attitude?

This little guy’s brain is an ItsyBitsy M0 Express, and he gets his time data from an Adalogger FeatherWing RTC. Those antennae aren’t just for looks – [Alex] chose the ItsyBitsy because it can easily do capacitive touch out of the box without extra components. In the brief demo after the break, [Alex] shows how touching them triggers either an animated face or a still face before switching to the clock face.

We love functional circuit sculptures, especially ones with this much character. [Alex] was inspired by [Mohit Bhoite]’s breathtaking circuit sculptures and seems to follow his great example of laying it all out on paper first. Incidentally, our last HackChat before Supercon starred [Mohit] and his circuit sculptures. Missed it? Read the transcript here.

Continue reading “CircuitPython Sculpture Clock Adds Character To Any Desk”

TI-83 Gets CircuitPython Upgrade

Graphing calculators are an interesting niche market these days. They’re relatively underpowered, and usually come with cheap, low resolution screens to boot. They remain viable almost solely due to their use in education and the fact that their limited connectivity makes them suitable for use in exams. The market is starting to hot up, though – and TI have recently been doing some interesting work with Python on their TI-83.

Rumor has it that TI have been unable to get Python to run viably directly on the TI-83 Premium CE. This led to the development of the TI-Python peripheral, which plugs into the calculator’s expansion port. This allows users to program in Python, with the TI-Python doing the work and the calculator essentially acting as a thin client. The chip inside is an Atmel SAMD21E18A-U, and is apparently running Adafruit’s CircuitPython platform.

This discovery led to further digging, of course. With some hacking, the TI-Python can instead be replaced with other boards based on Atmel SAMD21 chips. For those of you that aren’t in Atmel’s sales team, that means it’s possible to use things like the Adafruit Trinket M0 and the Arduino Zero instead, when flashed with the appropriate CircuitPython firmware. It’s a tricky business, involving USB IDs and some other hacks, but it’s nothing that can’t be achieved in a few hours or so.

This is a hack in its early days, so it’s currently more about building a platform at this stage rather then building fully-fledged projects just yet. We’re fully expecting to see Twitter clients and multiplayer games hit the TI-83 platform before long, of course. When you’ve done it, chuck us a link on the tip line.

[Thanks to PT for the tip!]