The PocketSprite is the tiniest fully-functional Game Boy Color and Sega Master System emulator. Not only is it small enough to fit in your pocket, it’s small enough to lose in your pocket. It’s now available as a Crowd Supply campaign, and it’s everything you could ever want in a portable, WiFi-enabled, fully hackable video game console. It also plays Witcher 3. And probably Crysis, because of the meme.
This has been a year and a half in the making. The first hardware version of the PocketSprite was revealed at the 2016 Hackaday Superconference by hardware engineer extraordinaire [Sprite_TM]. As [Sprite] has a long list of incredibly impressive hardware hacks like installing Linux on a hard drive and building a Matrix of Tamagotchis, he always has to keep pushing deep into the hardware frontier.
In 2016, [Sprite] showed off the tiniest Game Boy ever, powered by the then brand-spankin’ new ESP32. This was released as Open Source, with the hope that a factory in China would take the files and start pumping out mini Game Boys for everyone to enjoy. Now, a year and a half later, it’s finally happened. In a collaboration with manufacturing wizard [Steve K], [Sprite] is the mastermind behind TeamPocket. The pocket-sized Game Boy-shaped emulator is now real. This is our hands-on review.
Early Bird tickets for Hackaday Belgrade have just gone on sale, but they will not last long. This is Hackaday’s premier European hardware conference with talks, workshops, great food and drink, entertainment, and a hardware badge for hacking and demos. Festivities will go all day on 26 May and carry long into the night. The last time we did this was two years ago and it was completely sold out — now’s the time to get in on the fun.
Who’s speaking, what are the workshops all about, what does the hardware badge do, and what music do you have lined up? Trust your gut — we’ll have more details soon enough but you know this conference will be epic and it’s worth your time and treasure to be there. To reward your enthusiasm, Early Bird tickets are a much better deal than general admission.
Our Call for Proposals is now open. We seek talks and workshops exploring the most interesting uses of technology and the culture that goes along with it.
The Circle of Friends You May Not Have Met
You know those people just outside of the Hackaday orbit who are tired of hearing about the stuff you build and the coding tricks you discover? Those people won’t be there. Everywhere you turn at Hackaday Belgrade, fascinating conversations await. You’ll want it to last a week but it’s just one day… plus a little more.
Plan to arrive in Belgrade on Friday. There will be an unofficial meetup at a bar (last time we took over most of the place). The weather in Springtime is amazing and having pivo on the porch until far too late in the evening was a blast.
Things get started, not too early, on Saturday around 10 AM, and we’ll have coffee and treats to kick off the day. The baristas in 2016 were incredible, and the food — lunch and dinner — were as well. These amenities ring the socializing area of the conference in the lobby of the main hall. Talks and workshops will go all day but at 7 PM it’s all about hacking while our crew lay down a live IDM set. At 11 PM the badge hacking demos begin and the live DJ steps up at midnight.
See the Sights
Don’t let things end there. I vaguely remember a 3 or 4 AM ćevapi run after the last Hackaday Belgrade conference, and there were multiple groups planning museum trips the next day. Belgrade has a wonderful Museum of Science and Technology (I made it to that one), a Nikola Tesla Museum (I’m planning to get there this time), and a multitude of interesting attractions. I’ll save you from having to see my gallery of food photos, but the city is fun, inexpensive, and has really delicious cuisine.
Debuggers come in all shapes and sizes, offering a variety of options to track down your software problems and inspecting internal states at any given time. Yet some developers have a hard time breaking the habit of simply adding print statements into their code instead, performing manual work their tools could do for them. We say, to each their own — the best tools won’t be of much help if they are out of your comfort zone or work against your natural flow. Sometimes, a retrospective analysis using your custom-tailored debug output is just what you need to tackle an issue.
If the last part sounds familiar and your language of choice happens to be Python, [Alex Hall] created the Bird’s Eye Python debugger that records every expression inside a function and displays them interactively in a web browser. Every result, both partial and completed, and every value can then be inspected at any point inside each individual function call, turning this debugger into an educational tool along the way.
With a little bit of tweaking, the web interface can be made remote accessible, and for example, analyze code running on a Raspberry Pi. However, taking it further and using Bird’s Eye with MicroPython or CircuitPython would require more than just a little bit of tweaking, assuming there will be enough memory for it. Although it wouldn’t be first time that someone got creative and ran Python on a memory limited microcontroller.
How does one go about programming a drone to fly itself through the real world to a location without crashing into something? This is a tough problem, made even tougher if you’re pushing speeds higher and high. But any article with “MIT” implies the problems being engineered are not trivial.
The folks over at MIT’s Computer Science and Artificial Intelligence Laboratory (CSAIL) have put their considerable skill set to work in tackling this problem. And what they’ve come up with is (not surprisingly) quite clever: they’re embracing uncertainty.
Why Is Autonomous Navigation So Hard?
Suppose we task ourselves with building a robot that can insert a key into the ignition switch of a motor vehicle and start the engine, and could do so in roughly the same time-frame that a human could do — let’s say 10 seconds. It may not be an easy robot to create, but we can all agree that it is very doable. With foreknowledge of the coordinate information of the vehicle’s ignition switch relative to our robotic arm, we can place the key in the switch with 100% accuracy. But what if we wanted our robot to succeed in any car with a standard ignition switch?
Now the location of the ignition switch will vary slightly (and not so slightly) for each model of car. That means we’re going to have to deal with this in real time and develop our coordinate system on the fly. This would not be too much of an issue if we could slow down a little. But keeping the process limited to 10 seconds is extremely difficult, perhaps impossible. At some point, the amount of environment information and computation becomes so large that the task becomes digitally unwieldy.
This problem is analogous to autonomous navigation. The environment is always changing, so we need sensors to constantly monitor the state of the drone and its immediate surroundings. If the obstacles become too great, it creates another problem that lies in computational abilities… there is just too much information to process. The only solution is to slow the drone down. NanoMap is a new modeling method that breaks the artificial speed limit normally imposed with on-the-fly environment mapping.